Swing组件未显示在框架上

时间:2014-07-23 19:06:52

标签: java swing jpanel jlabel layout-manager

我不明白为什么我添加到RackBuilder的{​​{1}}对象无法显示。

代码运行并生成frame。我希望看到一个包含42行的面板,每行包含frame“test”。我的构造函数中是否存在不正确/缺失的内容?

JLabel

谢谢!

Image of the output upon running the above code.

2 个答案:

答案 0 :(得分:0)

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行标签。

答案 1 :(得分:0)

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

一旦我右键单击我想编译的java文件并点击它就可以运行。

感谢大家的帮助。