摘要:Java語言中通過設置組件的字體、背景色、前景色和在標簽中添加圖片等方法,可以美化Java的圖形用戶界面。
關(guān)鍵詞:Java;GUI;字體;背景色;前景色;圖片;美化
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2015)24-0054-02
Java的圖形用戶界面(Graphical User Interface,GUI ) 是指采用圖形方式顯示的計算機操作界面,是用戶與程序交互的窗口,使用圖形的方式借助菜單、按鈕等標準界面元素和鼠標操作,來幫助用戶方便地操作計算機。這其中界面是用戶最直接能看到的窗口,因此界面的美化就是一個很重要的環(huán)節(jié)。
1 設置組件的字體
設置組件的字體的方法是setFont( )方法,格式如下:
組件對象名.setFont(Font f);
Font類在java.awt中,F(xiàn)ont類表示字體,用來以可見方式呈現(xiàn)文本。Font類的構(gòu)造方法如下:
Font(String name, int style, int size):根據(jù)指定字體名稱name、字體樣式style和字體大小size,創(chuàng)建一個新Font。
其中,參數(shù)name表示字體名稱,如“黑體”、“Times New Roman”等。參數(shù)style表示字體樣式,此樣式可以為Font.PLAIN(普通)、Font.BOLD(粗體)、Font.ITALIC(斜體)或Font.BOLD+Font.ITALIC。參數(shù)size表示字體大小,單位是磅,如12,16等整數(shù)。
例如,設置組件按鈕b的標題的字體為宋體、加粗、20磅,可以使用下面的語句:
JButton b=new JButton("退出");
b.setFont(new Font("宋體",F(xiàn)ont.BOLD,20));
也可以先定義Font類的有名字的對象,然后再設置字體,例如:
JButton b=new JButton("退出");
Font f=new Font("宋體",F(xiàn)ont.BOLD,20);
b.setFont(f);
2 設置前景色、背景色的setForeground、setBackground方法
設置前景色、背景色的方法如下:
1)public void setForeground(Color c):設置組件的前景色。
2)public void setBackground(Color c):設置組件的背景色。
如果直接調(diào)用上述方法,則顏色與當前容器或所有圖形有關(guān)。如果通過組件對象調(diào)用上述方法,則顏色只是與該組件有關(guān)。
3 添加圖片
添加圖片的方法有多種,可以在窗體中使用圖像作為整個背景圖片,也可以用圖片來對窗體做局部的裝飾。如果只想用圖片來對窗體做局部的裝飾, 那么可以在需要放置圖片的位置先放置一個JLabel的對象, 然后設置它的圖標為創(chuàng)建好的ImageIcon 對象即可。
4 設置JFrame的初始位置、大小等
setSize(int width, int height):調(diào)整組件的大小,使其寬度為 width,高度為 height。單位是像素。
setLocation(x,y):設置窗口顯示的起始坐標(x,y)。
setResizable(false):參數(shù)為false時,禁止用戶調(diào)整窗口大小。
5 使用上述方法美化GUI的實例
[例1]學生成績管理系統(tǒng)的主界面。在這個界面中,設置了組件的字體、背景色、前景色,在標簽中添加了圖片。
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Window2 extends JFrame implements ActionListener
{ Window3 window3; //添加成績
Window4 window4; // 按學號查詢
Window5 window5; // 按姓名查詢
Window6 window6; //修改成績
JMenuBar mb;
JMenu menu1,menu2;
JMenuItem menuitem1,menuitem2,menuitem3,menuitem4;
JLabel label1,label2;
public Window2( )
{
setTitle("學生成績管理系統(tǒng)");
setSize(800,600);
setLocation(260,130); //設置窗口顯示的起始坐標
setResizable(false); //禁止用戶調(diào)整窗口大小
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setVisible(true);
JPanel panel =(JPanel)getContentPane( );
panel.setLayout( new FlowLayout( ));
panel.setBackground(Color.pink); //設置容器的背景色
label1=new JLabel("歡迎進入學生成績管理系統(tǒng)");
Font font1=new Font("楷體_GB2312",F(xiàn)ont.ITALIC+Font.BOLD,32);
label1.setFont(font1);
label1.setForeground(Color.blue);
mb=new JMenuBar();
menu1=new JMenu("成績管理");
Font f2=new Font("仿宋_GB2312",F(xiàn)ont.BOLD,18);
menu1.setFont(f2);
menuitem1=new JMenuItem("增加成績");
menuitem2=new JMenuItem("修改成績");
menu2=new JMenu("查詢");
Font f3=new Font("仿宋_GB2312",F(xiàn)ont.BOLD,18);
menu2.setFont(f3);
menuitem3=new JMenuItem("按學號查詢");
menuitem4=new JMenuItem("按姓名查詢");
ImageIcon a=new ImageIcon("F:/temp/c.jpg"); //初始化一個圖片
label2=new JLabel(a); //在標簽label2添加圖片
window3=new Window3();
window3.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
window4=new Window4();
window4.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
window5=new Window5();
window5.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
window6=new Window6();
window6.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
menu1.add(menuitem1); //在菜單上加菜單項
menu1.add(menuitem2);
menu2.add(menuitem3);
menu2.add(menuitem4);
mb.add(menu1); //在菜單條上添加菜單
mb.add(menu2);
setJMenuBar(mb);
panel.add(label1);
panel.add(label2);
menuitem1.addActionListener(this);
menuitem2.addActionListener(this);
menuitem3.addActionListener(this);
menuitem4.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
if (e.getActionCommand()=="添加成績")
{
window3.setVisible(true);
}
if (e.getActionCommand()=="修改成績")
{
window6.setVisible(true);
}
if (e.getActionCommand()=="按學號查詢")
{
window4.setVisible(true);
}
if (e.getActionCommand()=="按姓名查詢")
{
window5.setVisible(true);
}
}
}
程序的運行結(jié)果如圖1所示。
由于篇幅所限,Window3(添加成績)、Window4 (按學號查詢)、Window5 (按姓名查詢)、Window6(修改成績)等與數(shù)據(jù)庫連接并操作數(shù)據(jù)庫中數(shù)據(jù)的類不一一列出了。
4 結(jié)束語
通過設置組件的字體、背景色、前景色和在標簽中添加圖片等方法,我們在編寫Java程序時,就可以比較輕松地美化Java的圖形用戶界面了。
參考文獻:
[1] 王茹香. 在Java中使用圖片實現(xiàn)GUI的美化[J]. 電腦編程技巧與維護, 2012(11): 81-83, 88.
[2] 劉瑩. Java中JFrame添加圖片的兩種方法[J]. 電腦編程技巧與維護, 2014(20): 31-32.
[3] 歐陽桂秀. Java 語言程序設計[M]. 北京: 高等教育出版社, 2008.