2013-04-03 3 views
0

Я создал JFrame Class с Netbeans 7.3 и добавил две панели из палитры. Я добавил кнопку на первой панели, по щелчку которой я хочу добавить новую кнопку на второй панели (topoPane).Добавление JButton динамически к JPanel, не работающему с Netbeans

Ниже приведено событие нажатия кнопки, которое я написал для него. Но кнопка не добавляется к панели даже при вызове события. Пожалуйста, скажите мне, что в этом плохого.

private void jButton1MouseClicked(java.awt.event.MouseEvent evt) 
{          
    // TODO add your handling code here: 

    System.out.println("Creating the Button");   
    JButton but = new JButton(); 
    but.setBackground(Color.red); 
    but.setText("New Button"); 
    but.setBounds(500, 500, 500, 500); 

    topoPane.add(but); 
    topoPane.revalidate(); 

}    

ответ

1

С вашего использования setBounds, то очевидно, что вы используете null макет. Из-за этого вам нужно позвонить repaint(), поскольку контейнеры без макета не автоматически перекрашивают добавленные компоненты на revalidate.

Помимо того, что вызов repaint является хорошей практикой, менеджеры компоновки может устранить необходимость сделать этот вызов вместе с управлять проклейками и позиционированием компонентов. Это делает его веской причиной для использования layout manager.

+0

Эй, спасибо, это сработало. :) – Peeyushpd