Добавить метод в JPanel, созданный с помощью GUI Builder - PullRequest
0 голосов
/ 02 июня 2010

У меня есть графический интерфейс, созданный с помощью NetBeans GUI Builder. Я хочу добавить туда объект (давайте попробуем с кнопкой) после нажатия JButton

Очень простой код, который я написал в ActionListener и работает:

button1.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent arg0) {
            panel2.add(new JButton("X"));
            panel2.validate();
        }
    });

Однако в графическом интерфейсе, созданном NetBeans, это не работает:

 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
 jPanel1.add(new JButton("X"));
 jPanel1.validate();
 System.out.print("aa"); 
 }

Но он печатает "аа", так что слушатель действия работает.

Это похоже на проблему, подобную показанной здесь: http://bytes.com/topic/java/answers/857720-adding-icon-jpanel

но я не вижу даже того прямоугольника, о котором писал Иосиф.

Буду признателен за любое предложение.

1 Ответ

0 голосов
/ 02 июня 2010

Создайте панель-заполнитель в вашем редакторе, а затем добавьте панель к этому. Я думаю, что проблема связана с макетами и тому подобным, поскольку некоторые макеты требуют наличия некоторых данных макета при добавлении компонента (т.е. установлено второе поле в add (c, ...)). Итак, создайте местозаполнитель JPanel с помощью инструмента создания GUI, назовите его так, чтобы у вас была ссылка на него, а затем добавьте компонент на эту панель. Дайте ему макет, такой как FlowLayout, который не требует никаких данных макета. Возможно, вы также захотите удалить все вставки на панели, чтобы не получить большой интервал, что вы, вероятно, можете сделать в редакторе пользовательского интерфейса.

...