Подтвердить что ты не робот

Нельзя ли добавить компонент Swing в несколько контейнеров?

Я пытаюсь (тестирование чего-то еще) добавить одну ссылку JButton в два JPanels, чтобы проверить ее, и она исчезает с первой панели, в которую она была добавлена!

Итак, нельзя ли добавить компонент Swing в несколько контейнеров?

Спасибо заранее.

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

Кнопка JButton1 = новый JButton (someAction); JButton button2 = новый JButton (someAction);

Подробнее читайте в разделе руководства Swing по Как использовать действия.

В других случаях вам может понадобиться поделиться моделью:

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

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

Ответ 3

решаемые.

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

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

Ответ 4

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