1
public class Primary extends JFrame { 
    public Primary(String title) {
        super(title);
        JLabel Label1 = new JLabel("hello");
        Container c= getContentPane();
        c.add(Label1, new AbsoluteConstraints(117,15));
    }
}

我已经编写了这段代码,JFrame并在主类中调用了 runnable。但是,尽管没有显示错误,但在尝试编译时出现了很多错误。错误很长,但这里有一个示例:

线程“AWT-EventQueue-0”java.lang.IllegalArgumentException 中的异常:
    无法添加到布局:约束必须是字符串(或 null)
        在 java.awt.BorderLayout.addLayoutComponent(BorderLayout.java:426)
        在 javax.swing.JRootPane$1.addLayoutComponent(JRootPane.java:531)
        在 java.awt.Container.addImpl(Container.java:1120)"
4

3 回答 3

2

a 的默认布局管理器JFrameBorderLayout

仔细查看JFrameAPI。

您需要更改布局管理器以满足约束的要求(或相反)

于 2012-10-21T02:00:12.807 回答
2

您的方法是错误的,我认为仔细阅读 oracle 的 swing tuturials 对您是有益的。尤其

http://docs.oracle.com/javase/tutorial/uiswing/components/index.html

http://docs.oracle.com/javase/tutorial/uiswing/layout/none.html

于 2012-10-21T02:04:56.403 回答
1

-首先我要指出的是,BorderLayout是.JFrame

-如果您不想要默认值,您需要明确更改要使用的.LayoutBorderLayout

-如果可能的话,使用Team 早在 2005 年Group Layout开发的NetBeans产品,它简直太棒了。使用Windows Builder ProGoogle 现在免费提供的工具。

于 2012-10-21T04:49:19.050 回答