我刚开始编写GUI程序,这是我的第二个GUI程序。对于这两个项目(包括家庭作业),我都有同样的问题。 GUI对象(例如JTextField)不会显示应用程序何时运行,直到调整窗口大小或将键盘焦点移动到它们之后。如果我不做这两件事中的一件,那么我只需要一个空的应用程序窗口。在Mac上不显示Java对象的GUI对象
任何想法,为什么发生这种情况,我能做些什么来解决它?我正在使用Mac OS 10.6.1。
我的代码如下。随意评论我的编码风格,但请关注我遇到的问题。
import javax.swing.*;
import java.awt.*;
public class ToDo extends JFrame {
private int height = 30,
width = 300;
public ToDo() {
this.setSize(400,400);
this.setVisible(true);
this.setLayout(null);
this.setResizable(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("To Do List");
JTextField todoItem[] = new JTextField [10];
Container contentpane = this.getContentPane();
contentpane.setLayout(null);
for(int i=0; i<10; i++) {
todoItem[i] = new JTextField();
todoItem[i].setBounds(10,(height*(i)+10),width,height);
contentpane.add(todoItem[i]);
}
}
public static void main(String[] args) {
new ToDo();
}
}
如果你只是想要一个静态布局(它根本没有响应来调整窗口的大小),那么将layout设置为null不是问题 – 2009-11-06 22:08:41