我正在自学Java,并且正在阅读"Java All in One Desk Reference For Dummies“。我目前正在使用书中提供的代码来练习Swing。下面是我使用的代码,它来自本书:` `import javax.swing.*;
public class JavaBook6 extends JFrame
{
public static void main(String[] args)
{
new JavaBook6();
}
public JavaBook6()
{
this.setSize(400, 400);
this.setLocation(500, 0);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setTitle("Sample");
this.setVisible(true);
JPanel pnlMain = new JPanel();
JCheckBox chkMy = new JCheckBox("Save");
JButton btnMy = new JButton("Search");
JTextField txtMy = new JTextField(20);
pnlMain.add(chkMy);
pnlMain.add(txtMy);
pnlMain.add(btnMy);
this.add(pnlMain);
}
}当我按run时,我似乎得到不一致的结果。总会出现一个窗口。但是,有时窗口中只显示框架标题,而有时会显示JCheckBox、JTextArea和JButton等组件,正如我所预期的那样。
我的问题是,为什么组件有时会出现,而其他组件却不会出现?我尝试过使用其他组件,但得到了同样不一致的结果。
正如我所说的,我是一个初学者,因此我对java的工作原理有一个非常基本的理解,所以如果我的问题的答案是显而易见的,请原谅我。
发布于 2011-04-12 11:10:33
我对这本书不太感兴趣:
发布于 2011-04-12 10:56:03
你通常需要做的是...
this.pack();然后它才会显示所有内容。
我怀疑如果你调整窗口的大小,一切都会显示出来?
添加pack()将告诉布局管理器定位所有组件并调整其大小。此外,如果您调整窗口大小或以某种方式强制其刷新,它也会显示组件。
https://stackoverflow.com/questions/5629858
复制相似问题