【发布时间】:2014-07-23 19:06:52
【问题描述】:
我不明白为什么我添加到frame 的RackBuilder 对象没有显示出来。
代码运行并生成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对象。 -
一旦我将
package和import语句添加到 RackBuilderTool.java 的顶部,您的代码似乎可以正常工作。 64 位 Linux 上的 JDK 1.6.0_43。
标签: java swing jpanel jlabel layout-manager