Добавление компонентов в JFrame и JInternalFrame [дубликат]

Исправить исключение NullReferenceException можно с помощью Null-условных операторов в c # 6 и написать меньше кода для обработки нулевых проверок.

Он используется для проверки нуля до выполнения доступа к члену (?. ) или index (? [).

Пример

  var name = p?.Spouse?.FirstName;

эквивалентен:

    if (p != null)
    {
        if (p.Spouse != null)
        {
            name = p.Spouse.FirstName;
        }
    }

В результате имя будет нулевым когда p равно null или когда p.Spouse имеет значение null.

В противном случае имени переменной будет присвоено значение p.Spouse.FirstName.

Для получения дополнительной информации: Операторы с нулевым условием

25
задан Juan Diego 6 January 2011 в 23:23
поделиться

4 ответа

От: http://download.oracle.com/javase/tutorial/uiswing/components/toplevel.html :

Каждый компонент GUI может содержаться только один раз. Если компонент уже находится в контейнере, и вы пытаетесь его добавить в другой контейнер, компонент будет удален из первого контейнера, а затем добавлен ко второму.

46
ответ дан jzd 28 August 2018 в 13:01
поделиться

Как вы обнаружили, вы не можете делиться компонентами. Однако есть и другие подходы, которые вы можете использовать.

В случае JButtons вы можете использовать Action:

JButton button1 = new JButton (someAction); JButton button2 = new JButton (someAction);

Для получения дополнительной информации прочтите раздел из руководства Swing «Как использовать действия .

В других случаях вы может хотеть разделить модель:

DefaultTableModel model = new DefaultTableModel( ... );
JTable table1 = new JTable( model );
JTable table2 = new JTable( model );

Решение зависит от вашего требования.

6
ответ дан camickr 28 August 2018 в 13:01
поделиться

Решено.

Проверяется в разделе UI-Swing учебника Java.

Каждый компонент GUI может содержаться только один раз. Если компонент уже находится в контейнере, и вы пытаетесь его добавить в другой контейнер, компонент будет удален из первого контейнера, а затем добавлен ко второму.
3
ответ дан Juan Diego 28 August 2018 в 13:01
поделиться

Я не думаю, что это возможно. Что вы можете сделать, это несколько компонентов, которые используют один и тот же обработчик событий. В основном, в вашем случае, объявите две кнопки и используйте один и тот же метод обработчика событий.

1
ответ дан npinti 28 August 2018 в 13:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: