java - GUI 对象在 Mac 上的 Java 中不显示

标签 java user-interface macos

我才刚刚开始编写 GUI 程序,这是我的第二个程序。对于这两个项目(都是家庭作业),我都遇到了同样的问题。 GUI 对象(例如 JTextField)在应用程序运行时不会显示,直到我调整窗口大小或将键盘焦点移到它们上。如果我不做这两件事之一,那么我将只有一个空的应用程序窗口。

有什么想法为什么会发生这种情况以及我可以采取什么措施来解决它吗?我正在使用 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();
    }
}

最佳答案

您必须在组件可见之前添加元素。

将此作为最后一行:

        this.setVisible(true);

alt text http://img10.imageshack.us/img10/8210/capturadepantalla200911s.png

这与 OSX 无关,Windows 中也会发生。

关于java - GUI 对象在 Mac 上的 Java 中不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1690641/

相关文章:

java - 程序 'java.ori' 收到 X Window 系统错误

java - 我的投影矩阵会出现什么问题,导致立方体完全消失?

java - 可以直接实例化hibernate session Factory但不能通过spring来实例化

cocoa - Mac OS X - 以编程方式调整窗口大小

macos - 为什么Apache Server无法在MAMP中启动?

ruby-on-rails - 为 ruby​​ 2.0 安装 json gem 时出错

java - Weblogic 集成和点库

linux - Linux 上的 swt GUI 性能问题

java - GUI 中的 JButton

java 和 javafx 集成程序