首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Eclipse for Java Swing中的结果不一致

Eclipse for Java Swing中的结果不一致
EN

Stack Overflow用户
提问于 2011-04-12 10:49:02
回答 2查看 280关注 0票数 2

我正在自学Java,并且正在阅读"Java All in One Desk Reference For Dummies“。我目前正在使用书中提供的代码来练习Swing。下面是我使用的代码,它来自本书:` `import javax.swing.*;

代码语言:javascript
复制
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的工作原理有一个非常基本的理解,所以如果我的问题的答案是显而易见的,请原谅我。

EN

回答 2

Stack Overflow用户

发布于 2011-04-12 11:10:33

我对这本书不太感兴趣:

  1. 图形用户界面应在EDT上创建。有关更多信息,请阅读Concurrency上的Swing教程中的部分。我还建议您使用教程中的示例,因为在调用setVisible( true )方法之前,必须将来自tutorial.
  2. Component的建议添加到图形用户界面中。(有办法绕过这一点,但目前请保持简单,并遵循以下规则)。
票数 3
EN

Stack Overflow用户

发布于 2011-04-12 10:56:03

你通常需要做的是...

代码语言:javascript
复制
this.pack();

然后它才会显示所有内容。

我怀疑如果你调整窗口的大小,一切都会显示出来?

添加pack()将告诉布局管理器定位所有组件并调整其大小。此外,如果您调整窗口大小或以某种方式强制其刷新,它也会显示组件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5629858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档