Исправить исключение 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.
Для получения дополнительной информации: Операторы с нулевым условием
От: http://download.oracle.com/javase/tutorial/uiswing/components/toplevel.html :
Каждый компонент GUI может содержаться только один раз. Если компонент уже находится в контейнере, и вы пытаетесь его добавить в другой контейнер, компонент будет удален из первого контейнера, а затем добавлен ко второму.
blockquote>
Как вы обнаружили, вы не можете делиться компонентами. Однако есть и другие подходы, которые вы можете использовать.
В случае 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 );
Решение зависит от вашего требования.
Решено.
Проверяется в разделе UI-Swing учебника Java.
Каждый компонент GUI может содержаться только один раз. Если компонент уже находится в контейнере, и вы пытаетесь его добавить в другой контейнер, компонент будет удален из первого контейнера, а затем добавлен ко второму. Blockquote>
Я не думаю, что это возможно. Что вы можете сделать, это несколько компонентов, которые используют один и тот же обработчик событий. В основном, в вашем случае, объявите две кнопки и используйте один и тот же метод обработчика событий.