----------------------
android培训、java培训、期待与您交流! ----------------------
在java中用于设计图形化界面的两个包分别是:AWT和Swing
AWT需要调动本地系统方法实现功能,属于重量级控件。
Swing:在AWT的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由java实现。增强了移植性,属于轻量级控件。
Container是一个特殊的组件,该组件中可以通过add方法添加其他组件进来。
常见的布局管理器:
FlowLayout(流式布局管理器)->从左到右的顺序排列。Panel默认的布局管理器。
BorderLayout(边界布局管理器)->东、南、西、北、中。Frame默认的布局管理器
GridLayout(网格布局管理器)->规则的矩形
CardLayout(卡片布局管理器)->选项卡
GridBagLayout(网格包布局管理器)->非规则矩形
import java.awt.*;
public class GuiTest {
public static void main(String[] args) {
Frame f=new Frame();
f.setBounds(300,300,300,300);
f.setLayout(new FlowLayout());
TextField tf=new TextField(10);
Button b=new Button("->");
TextArea ta=new TextArea(8,9);
f.add(tf);
f.add(b);
f.add(ta);
f.setVisible(true);
}
}
上面程序只是设计一个图形,没有任何效果。只有关闭程序图形化界面才会关闭。要想有效果就要运用到事件监听器。
事件监听机制:所谓的事件监听机制就是在组件上安装一个监听装置,当触发这个组件时,组件产生相应的事件并将事件对象传给了监听装置,监听装置给出了相应的处理。就相当于在防盗门上安装了报警器,当去撬门时,撬门这个事件给了报警器,报警器发出报警信号。如下图所示:
将上面程序做如下修改
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class GuiTest {
public GuiTest(){
init();
}
public static void main(String[] args) {
new GuiTest();
}
private static void init() {
Frame f=new Frame();
f.setBounds(300,300,300,300);
f.setLayout(new FlowLayout());
TextField tf=new TextField(10);
Button b=new Button("->");
TextArea ta=new TextArea(8,9);
f.add(tf);
f.add(b);
f.add(ta);
f.addWindowListener(new MyWindowClose()); //安装监听装置
f.setVisible(true);
}
}
class MyWindowClose extends WindowAdapter{
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
运行后图形化界面只要点击窗口叉号,界面即可关闭。
FileDIalog:用这个类显示的是一个文件对话框窗口,它有两个字段来显示对话框模式分别是LOAD(作用是查找的要读的文件)、SAVE(查找要写的文件)。
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class GuiTest {
private Frame f;
private MenuBar mb;
private Menu m;
private MenuItem mi1,mi2;
private FileDialog fg;
public GuiTest(){
init();
}
public static void main(String[] args) {
new GuiTest();
}
private void init() {
f=new Frame();
mb=new MenuBar();
m=new Menu("文件");
mi1=new MenuItem("保存");
mi2=new MenuItem("打开");
m.add(mi1);
m.add(mi2);
mb.add(m);
f.setBounds(300,300,300,300);
f.setLayout(new FlowLayout());
TextField tf=new TextField(10);
Button b=new Button("->");
TextArea ta=new TextArea(8,9);
f.add(tf);
f.add(b);
f.add(ta);
f.setMenuBar(mb);
event();
f.setVisible(true);
}
private void event() {
f.addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
mi1.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
fg=new FileDialog(f,"保存",FileDialog.SAVE);
fg.setVisible(true);
}
});
mi2.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
fg=new FileDialog(f,"打开",FileDialog.LOAD);
fg.setVisible(true);
}
});
}
}