GUI 全称 Graphical User Interface 译作 图形用户接口,为程序员编写图形界面的程序提供了接口。
java有关图形化接口的封装都在
java.awt (重量级接口,依赖本地系统移植性差,在不同系统下可能表现不同) 和
javax.swing(轻量级接口,完全由java实现,移植性强)包下。
图形界面编程我们需要掌握如下知识:
布局:流布局 网格布局等许多布局方式,请参考 LayoutManager 接口
组件: 文本框 按钮等都属于组件 请参考Component类
事件(监听): 鼠标事件 键盘事件 请参考 Event MouseEvent MouseListener KeyEvent KeyListener
组件继承关系(常用,非完整继承图)
常用方法示例代码:
package GUIDemo;
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class TransDataDemo {
public static void main(String[] args) {
Frame f = new Frame();
//设置标题
f.setTitle("数据转移");
// 设置为流式布局(更多布局方式请参考LayoutManager)
f.setLayout(new FlowLayout());
//设置窗体可见 如果窗体里有很多组件 建议窗体的显示动作放在最后
f.setVisible(true);
//设置边距和宽高
f.setBounds(200,300,500,300);
// 创建一个文本框
final TextField tf = new TextField(20);
// 创建一个文本域
final TextArea ta = new TextArea(10,40);
//创建一个按钮
Button b = new Button("数据转移");
//设置按钮大小
b.setSize(20, 10);
// 给按钮添加点击事件
b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
String s = tf.getText().trim();
ta.append(s+"\r\n");
tf.setText("");
//获取光标
tf.requestFocus();
}
});
//给窗体添加组件
f.add(tf);
f.add(b);
f.add(ta);
// 设置监听事件 使关闭按钮生效
f.addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
菜单组件的使用:
值得注意的是,在使用菜单组件的时候,必须结合菜单栏组件,菜单中的每一项叫菜单项,它们的关系是,菜单栏属于窗体,菜单属于菜单栏,菜单项属于菜单,而菜单下也可以添加菜单,这样就可以实现多级菜单的效果。
一级菜单示例代码:
package GUIDemo;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class MenuDemo {
public static void main(String[] args) {
Frame f = new Frame("菜单演示");
f.setBounds(300, 200, 300, 200);
// 菜单栏
MenuBar mb = new MenuBar();
// 菜单
Menu m = new Menu("文件");
// 菜单项
MenuItem mi = new MenuItem("新建");
MenuItem mi1 = new MenuItem("另存为");
MenuItem mi2 = new MenuItem("退出系统");
// 给菜单添加菜单项
m.add(mi);
m.add(mi1);
m.add(mi2);
// 给菜单栏添加菜单
mb.add(m);
// 给窗体添加菜单栏
f.setMenuBar(mb);
mi2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
f.setVisible(true);
}
}