GUI之多窗口示例,即是程序包含多个窗口,点击主窗口中的按钮,会跳出相应的窗口出来。
包含主窗口(MainWin.java),附上代码:
import java.awt.*;
import java.awt.event.*;
public class MainWin implements ActionListener {
Button btn1, btn2, btn3, btn4;
public static void main(String[] args) {
// MainWin mw = new MainWin();
new MainWin();
}
public MainWin() {
Frame f = new Frame("主窗口");
Panel p = new Panel();
// 初始化按钮
btn1 = new Button("1");
btn2 = new Button("2");
btn3 = new Button("3");
btn4 = new Button("4");
btn1.addActionListener(this);
btn2.addActionListener(this);
btn3.addActionListener(this);
btn4.addActionListener(this);
p.add(btn1);
p.add(btn2);
p.add(btn3);
p.add(btn4);
f.add(p);
f.setBounds(200, 200, 600, 400);
f.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
Object obj = e.getSource();
if(obj == btn1) {
System.out.println("1");
new FirstWin();
}
else if(obj == btn2) {
System.out.println("2");
new SecondWin();
}
else if(obj == btn3) {
System.out.println("3");
new ThirdWin();
}
else if(obj == btn4) {
System.out.println("4");
new ForthWin();
}
}
}
子窗口1(FirstWin.java),代码:
import java.awt.*;
public class FirstWin extends Frame {
public FirstWin() {
this.setBounds(220, 220, 200, 200);
this.setTitle("1");
this.setVisible(true);
}
}
其它子窗口类似,
子窗口2(SecondWin.java),代码:
import java.awt.*;
public class SecondWin extends Frame {
public SecondWin() {
this.setBounds(240, 240, 200, 200);
this.setTitle("2");
this.setVisible(true);
}
}
子窗口3(ThirdWin.java),代码:
import java.awt.*;
public class ThirdWin extends Frame {
public ThirdWin() {
this.setBounds(260, 260, 200, 200);
this.setTitle("3");
this.setVisible(true);
}
}
子窗口4(ForthWin.java),代码:
import java.awt.*;
public class ForthWin extends Frame {
public ForthWin() {
this.setBounds(280, 280, 200, 200);
this.setTitle("4");
this.setVisible(true);
}
}