Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
NetBeans与Eclipse的Java布局定位_Java_Swing_Layout_Positioning - Fatal编程技术网

NetBeans与Eclipse的Java布局定位

NetBeans与Eclipse的Java布局定位,java,swing,layout,positioning,Java,Swing,Layout,Positioning,我正在尝试创建一个简单的幻灯片程序,比如Powerpoint。为了设计它的GUI,我使用了Netbeans和,然后将GUI代码从Netbeans复制到Eclipse Netbeans生成了以下代码: pg = new javax.swing.JPanel(); jScrollPane1 = new javax.swing.JScrollPane(); jPanel1 = new javax.swing.JPanel(); setDefaultCloseOpera

我正在尝试创建一个简单的幻灯片程序,比如Powerpoint。为了设计它的GUI,我使用了Netbeans和,然后将GUI代码从Netbeans复制到Eclipse

Netbeans生成了以下代码:

    pg = new javax.swing.JPanel();
    jScrollPane1 = new javax.swing.JScrollPane();
    jPanel1 = new javax.swing.JPanel();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    setBackground(new java.awt.Color(153, 153, 153));

    pg.setBackground(new java.awt.Color(255, 255, 255));
    pg.setForeground(new java.awt.Color(255, 255, 255));
    pg.setPreferredSize(new java.awt.Dimension(255, 234));

    javax.swing.GroupLayout pgLayout = new javax.swing.GroupLayout(pg);
    pg.setLayout(pgLayout);
    pgLayout.setHorizontalGroup(
        pgLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, 357, Short.MAX_VALUE)
    );
    pgLayout.setVerticalGroup(
        pgLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, 257, Short.MAX_VALUE)
    );

    javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
    jPanel1.setLayout(jPanel1Layout);
    jPanel1Layout.setHorizontalGroup(
        jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, 62, Short.MAX_VALUE)
    );
    jPanel1Layout.setVerticalGroup(
        jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, 279, Short.MAX_VALUE)
    );


    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addContainerGap()
            .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 82, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
            .addComponent(pg, javax.swing.GroupLayout.DEFAULT_SIZE, 357, Short.MAX_VALUE)
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
            .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 279, Short.MAX_VALUE)
        .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        .addGroup(layout.createSequentialGroup()
            .addContainerGap()
            .addComponent(pg, javax.swing.GroupLayout.DEFAULT_SIZE, 257, Short.MAX_VALUE)
            .addContainerGap())
    );

    pack();
我的问题是,我想将右侧的
jPanel1
更改为我自己的类,该类扩展了
JPanel
。为此,我写道:

JPanel jPanel1 = new JPanel();  
jPanel1.add(new ToolBoxGUI("ToolBox"));

但是当我运行代码时,右边没有
ToolBoxGUI
class按钮。如何解决此问题?

jPanel1
使用组布局。要使其可见,必须将ToolBoxGUI添加到此GroupLayout。如果要使ToolBoxGUI成为jPanel1的唯一组件,请删除设置jPanel1布局的代码:

javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
    jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGap(0, 62, Short.MAX_VALUE)
);
jPanel1Layout.setVerticalGroup(
    jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGap(0, 279, Short.MAX_VALUE)
);
并将其替换为

jPanel1.setLayout(new BorderLayout());
或者,如果您想用ToolBoxGUI替换jPanel1,请删除与上面相同的代码,并使用初始化jPanel1

jPanel1 = new ToolBoxGUI();

一种方法是将bean添加到您的Netbeans GUI中。我现在没有这个程序,但我认为在GUI创建者的右边有一个工具箱。其中一个选项是添加一个bean。单击“CreateBean”并键入“ToolBoxGUI”作为类名。然后你可以把它拖到你的面板上。从长远来看,手工设计UI更好。将帮助您理解这些差异,但总的来说,我发现
BoxLayout
(以及
Box
类)、
BorderLayout
FlowLayout
是最有用的。我从来没用过这个,但我知道有些人真的很喜欢它。坚持使用NetBeans……从长远来看,你会更快乐:)