【问题标题】:Swing Component not displaying on the frameSwing 组件未显示在框架上
【发布时间】:2014-07-23 19:06:52
【问题描述】:

我不明白为什么我添加到frameRackBuilder 对象没有显示出来。

代码运行并生成frame。我希望看到一个有 42 行的面板,每行包含一个JLabel“测试”。我的构造函数有什么不正确/遗漏的吗?

public class RackBuilderTool extends JPanel{

    public RackBuilderTool() {
        super(new GridLayout(42, 0));
        for (int i = 0; i < 42; i++) {
            add(new JLabel("test"));
        }
    }
    private static void createAndShowGUI() {
        JFrame frame = new JFrame("Rack Builder Tool");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        RackBuilderTool rackBuilder = new RackBuilderTool();
        rackBuilder.setOpaque(true);
        frame.setContentPane(rackBuilder);

        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }
}

谢谢!

【问题讨论】:

  • 我看到的只是 Java 框架。
  • 请张贴实际输出的图片。
  • 关闭你已经打开的其他项目,重新构建并重新编译。另一种选择是:删除 extends JPanel 并创建一个 JPanel 对象。
  • 一旦我将 packageimport 语句添加到 RackBuilderTool.java 的顶部,您的代码似乎可以正常工作。 64 位 Linux 上的 JDK 1.6.0_43。

标签: java swing jpanel jlabel layout-manager


【解决方案1】:
import javax.swing.*;
import java.awt.*;
public class RackBuilderTool extends JPanel{

    public RackBuilderTool() {
        super(new GridLayout(42, 0));
        for (int i = 0; i < 42; i++) {
            add(new JLabel("test"));
        }
    }
    private static void createAndShowGUI() {
        JFrame frame = new JFrame("Rack Builder Tool");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        RackBuilderTool rackBuilder = new RackBuilderTool();
        rackBuilder.setOpaque(true);
        frame.setContentPane(rackBuilder);

        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }
}

现在它将显示 42 行标签。

【讨论】:

    【解决方案2】:

    意识到 Netbeans IDE 上的“运行”按钮是运行整个项目的。结果它在同一个项目下运行另一个java文件。

    当我右键单击我想编译的 java 文件并单击运行时,它就可以工作了。

    感谢大家的帮助。

    【讨论】:

      猜你喜欢
      • 2012-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-17
      • 1970-01-01
      相关资源
      最近更新 更多