摘要:Java语言中通过设置组件的字体、背景色、前景色和在标签中添加图片等方法,可以美化Java的图形用户界面。
关键词:Java;GUI;字体;背景色;前景色;图片;美化
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)24-0054-02
Java的图形用户界面(Graphical User Interface,GUI ) 是指采用图形方式显示的计算机操作界面,是用户与程序交互的窗口,使用图形的方式借助菜单、按钮等标准界面元素和鼠标操作,来帮助用户方便地操作计算机。这其中界面是用户最直接能看到的窗口,因此界面的美化就是一个很重要的环节。
1 设置组件的字体
设置组件的字体的方法是setFont( )方法,格式如下:
组件对象名.setFont(Font f);
Font类在java.awt中,Font类表示字体,用来以可见方式呈现文本。Font类的构造方法如下:
Font(String name, int style, int size):根据指定字体名称name、字体样式style和字体大小size,创建一个新Font。
其中,参数name表示字体名称,如“黑体”、“Times New Roman”等。参数style表示字体样式,此样式可以为Font.PLAIN(普通)、Font.BOLD(粗体)、Font.ITALIC(斜体)或Font.BOLD+Font.ITALIC。参数size表示字体大小,单位是磅,如12,16等整数。
例如,设置组件按钮b的标题的字体为宋体、加粗、20磅,可以使用下面的语句:
JButton b=new JButton("退出");
b.setFont(new Font("宋体",Font.BOLD,20));
也可以先定义Font类的有名字的对象,然后再设置字体,例如:
JButton b=new JButton("退出");
Font f=new Font("宋体",Font.BOLD,20);
b.setFont(f);
2 设置前景色、背景色的setForeground、setBackground方法
设置前景色、背景色的方法如下:
1)public void setForeground(Color c):设置组件的前景色。
2)public void setBackground(Color c):设置组件的背景色。
如果直接调用上述方法,则颜色与当前容器或所有图形有关。如果通过组件对象调用上述方法,则颜色只是与该组件有关。
3 添加图片
添加图片的方法有多种,可以在窗体中使用图像作为整个背景图片,也可以用图片来对窗体做局部的装饰。如果只想用图片来对窗体做局部的装饰, 那么可以在需要放置图片的位置先放置一个JLabel的对象, 然后设置它的图标为创建好的ImageIcon 对象即可。
4 设置JFrame的初始位置、大小等
setSize(int width, int height):调整组件的大小,使其宽度为 width,高度为 height。单位是像素。
setLocation(x,y):设置窗口显示的起始坐标(x,y)。
setResizable(false):参数为false时,禁止用户调整窗口大小。
5 使用上述方法美化GUI的实例
[例1]学生成绩管理系统的主界面。在这个界面中,设置了组件的字体、背景色、前景色,在标签中添加了图片。
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("学生成绩管理系统");
setSize(800,600);
setLocation(260,130); //设置窗口显示的起始坐标
setResizable(false); //禁止用户调整窗口大小
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setVisible(true);
JPanel panel =(JPanel)getContentPane( );
panel.setLayout( new FlowLayout( ));
panel.setBackground(Color.pink); //设置容器的背景色
label1=new JLabel("欢迎进入学生成绩管理系统");
Font font1=new Font("楷体_GB2312",Font.ITALIC+Font.BOLD,32);
label1.setFont(font1);
label1.setForeground(Color.blue);
mb=new JMenuBar();
menu1=new JMenu("成绩管理");
Font f2=new Font("仿宋_GB2312",Font.BOLD,18);
menu1.setFont(f2);
menuitem1=new JMenuItem("增加成绩");
menuitem2=new JMenuItem("修改成绩");
menu2=new JMenu("查询");
Font f3=new Font("仿宋_GB2312",Font.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);
}
}
}
程序的运行结果如图1所示。
由于篇幅所限,Window3(添加成绩)、Window4 (按学号查询)、Window5 (按姓名查询)、Window6(修改成绩)等与数据库连接并操作数据库中数据的类不一一列出了。
4 结束语
通过设置组件的字体、背景色、前景色和在标签中添加图片等方法,我们在编写Java程序时,就可以比较轻松地美化Java的图形用户界面了。
参考文献:
[1] 王茹香. 在Java中使用图片实现GUI的美化[J]. 电脑编程技巧与维护, 2012(11): 81-83, 88.
[2] 刘莹. Java中JFrame添加图片的两种方法[J]. 电脑编程技巧与维护, 2014(20): 31-32.
[3] 欧阳桂秀. Java 语言程序设计[M]. 北京: 高等教育出版社, 2008.