小白求教,下面这段代码编译运行之后,为什么需要在调整一次窗口大小之后,窗口中的按钮组件才会显示出来?
///////////////////////////////////////////////////////////
// 文件名:
// JavaApplication2.java
///////////////////////////////////////////////////////////
// 简介:
// 简单的Java程序,通过点击按钮显示或隐藏窗口
///////////////////////////////////////////////////////////
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class JavaApplication2 {
static JFrame window1 = new JFrame("第一个窗口");
static JFrame window2 = new JFrame("第二个窗口");
public static void main(String [] args) {
Container window1_con = window1.getContentPane();
window1.setBounds(60,100,300,150);
window1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window1.setVisible(true);
Container window2_con = window2.getContentPane();
window2.setBounds(260,100,300,150);
window2.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
window2.setVisible(false);
JButton btn1 = new JButton("打开第二个窗口");
window1_con.add(btn1);
// window1.pack();
JButton btn2 = new JButton("关闭此窗口");
window2_con.add(btn2);
// window2.pack();
ActionListener listener1;
listener1 = new ReaderListen1();
btn1.addActionListener(listener1);
ActionListener listener2;
listener2 = new ReaderListen2();
btn2.addActionListener(listener2);
}
}
class ReaderListen1 extends JavaApplication2 implements ActionListener {
public void actionPerformed(ActionEvent e) {
window2.setVisible(true);
}
}
class ReaderListen2 extends JavaApplication2 implements ActionListener {
public void actionPerformed(ActionEvent e) {
window2.setVisible(false);
}
}