java图形界面一般需要两个包灵活使用,一个是java.awt,另外一个是java.swing.
常用的组件:
1.常用的容器(可以往内加东西的就是容器)
JFrame(窗体类),是顶级容器,最大的,所有的东西都可以网上加.可以理解为一个大窗户
JPanel(面板类),是最灵活的容器,她可大可小.那么便是大窗户里的那些一个一个组成的玻璃板,
JMenuBar(菜单栏),JMenu(菜单项),等等
2.常用的元素组件(不能往里面加内容)
JLabel 标签类
JButton 按钮类
JComboBox 下拉框类
JPasswordField 密码输入框
JTextField 编辑框类
JMenuItem 菜单项类
(一般带有"J"的都在java.swing包下)
3.常用的布局
BoderLayout 边框布局 (窗体的布局是边框布局,在没有指定显示位置的情况下,都会往中间去加)
FlowLayout 流式布局 (面板的布局是流式布局)
GridLayout 网格布局
所有以Layout结尾的类都是布局类。
界面实现:
实现界面的步骤:
(1)定义类,在类中定义主函数和初始化界面的方法
(2)在初始化界面的方法中,实例化一个JFrame窗体类的对象
(3)设置窗体对象的属性(大小,标题,显示位置,窗口关闭时退出程序,禁止改变窗体大小,窗体可见)
(4)实例化布局对象并且设置窗体容器的布局方式
(5)实例化容器或者元素组件的对象,然后让对象添加到窗体上(标签)
(6)在主函数中实例化类的对象,然后调用初始化界面的方法
下面用一段简单的代码实现一个小小计算器的界面:
import java.awt.BorderLayout;//边框布局类
import java.awt.Color;//颜色类
import java.awt.Dimension;
import javax.swing.JButton;//按钮类
import javax.swing.JFrame;//窗体类
import javax.swing.JPanel;//面板类
import javax.swing.JTextField;//编辑框类
public class Calculator {
//程序的入口主函数
public static void main(String [] args) {
//实例化一个计算器对象
Calculator calculator = new Calculator();
calculator.initUI();
}
int i ;
//创建一个全局变量,储存字符
private String[] name = {"C","=","7","8","9","+","4","5","6","-","1","2","3","*","0",".","/"};
//定义一个按钮数组
JButton jb[] = new JButton[27];
//方法:initUI
public void initUI(){
//实例化一个JFrame窗体对象
JFrame jf = new JFrame();
jf.setSize(196,242);//设置大小
jf.setLocation(100, 100);//设置显示位置
jf.setTitle("Calculator");//设置标题
jf.setDefaultCloseOperation(3);//设置关闭窗口时退出程序
jf.setResizable(false);//设置禁止改变窗口大小
BorderLayout bd = new BorderLayout();//实例化一个边框布局
jf.setLayout(bd);//设置窗体的布局为边框布局
JTextField jt = new JTextField("0");//实例化一个编辑框类
jt.setPreferredSize(new Dimension(140,50));//设置编辑框的大小
jt.setHorizontalAlignment(JTextField.RIGHT); // 文本右对齐
jt.setBackground(Color.WHITE);//设置编辑框背景为白色
jt.setEditable(false);//设置编辑框不可编辑
jf.add(jt,BorderLayout.NORTH);
JPanel panel = new JPanel();//实例化一个面板对象
//使用循环来添加按钮
for(i = 0; i <= 16; i++){
jb[i] = new JButton(name[i]);//创建每一个按钮
panel.add(jb[i]);//将按钮添加到面板上
jb[i].setPreferredSize(new Dimension(41,26));//设置每一个按钮的大小
if(i == 0){
jb[i].setPreferredSize(new Dimension(132,26));//特别设置“C”按钮的大小
}
if(i == 14){
jb[i].setPreferredSize(new Dimension(86,26));//特别设置“0”按钮的大小
}
// NumberListener a = new NumberListener(jt,jb[i]);//实例化事件处理类的对象
// jb[i].addActionListener(a);//将监听器添加到按钮上
}
jf.add(panel,BorderLayout.CENTER);//将面板加到窗体的中间
jf.setVisible(true);//设置窗口可见
}
}
下面便是小小计算器的界面了: