Позиционирование макета Java с NetBeans против Eclipse - PullRequest
0 голосов
/ 31 декабря 2011

Я пытаюсь создать простую программу слайд-шоу, такую ​​как PowerpointЧтобы спроектировать его графический интерфейс, я использовал Netbeans, а затем скопировал код графического интерфейса из 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.Как мне решить эту проблему?

1 Ответ

0 голосов
/ 31 декабря 2011

jPanel1 использует GroupLayout. Чтобы быть видимым, ваш 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());

Или, если вы хотите заменить jPanel1 на ToolBoxGUI, удалите тот же код, что и выше, и инициализируйте jPanel1 с

jPanel1 = new ToolBoxGUI();
...