GUI简单学习总结
GUI方法演示
public class MenuDemo {
protected static final String LINE_SEPARATOR = System.getProperty("line.separator");
private JFrame f;
private MenuBar mb;//菜单栏
private Menu m1,m2,m3;//菜单夹
private MenuItem mi1,mi2,mi3,mi4;//菜单项
private TextArea ta;
private Dialog d;
private FileDialog fd;
private File file;
private BufferedReader bufr;
private BufferedWriter bufw;
public MenuDemo(){
super();
init();
}
private void init() {
f = new JFrame("菜单练习");
f.setBounds(500, 400, 500, 400);
f.setLayout(new FlowLayout());//流式布局
//菜单设置
m1 = new Menu("文件");
m2 = new Menu("退出");
m3 = new Menu("帮助");
mb = new MenuBar();
mb.add(m1);
mb.add(m2);
mb.add(m3);
mi1 = new MenuItem("打开");
mi2 = new MenuItem("保存");
mi3 = new MenuItem("退出");
mi4 = new MenuItem("帮助");
m1.add(mi1);
m1.add(mi2);
m2.add(mi3);
m3.add(mi4);
f.setMenuBar(mb);
ta = new TextArea();
f.add(ta);
f.setVisible(true);
event();
}
private void event() {
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
//绑定在菜单夹的监听器对该菜单夹中的全体菜单项生效,若无菜单夹,则不生效
m2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
mi4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
d = new Dialog(f);
TextArea ta = new TextArea("菜单练习\nhello world\n");
d.setBounds(600, 400, 300, 200);
Label l = new Label("你好");
d.add(l);
d.setVisible(true);
}
});
//打开
mi1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
fd = new FileDialog(f,"打开文件",FileDialog.LOAD);
fd.setVisible(true);
String line;
if(fd.getFile()!=null){
file = new File(fd.getDirectory(),fd.getFile());
if(file.getName()!=null){
ta.setText("");
System.out.println(file.getName());
try {
bufr = new BufferedReader(new FileReader(file));
while((line = bufr.readLine())!=null){
ta.append(line+LINE_SEPARATOR);
}
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e2){
e2.printStackTrace();
}finally{
try {
bufr.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
}
});
}
}
事件监听机制
时间监听机制的组成
1.事件源
2.事件
3.监听器
4.处理方式