2011-01-06 13 views

Odpowiedz

45

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

Każdy komponent GUI może być zawarty tylko raz. Jeśli komponent już jest w kontenerze i spróbujesz go dodać do innego pojemnika, komponent zostanie usunięty z pierwszego kontenera , a następnie dodany do sekundy.

+2

Dziękuję za pomoc! –

+0

Sprawdziłem dokładnie sformułowanie i zredagowałem odpowiedź w tym samym czasie, co Ty. Chyba powinienem odświeżyć się pierwszy. – jzd

+0

Hehe. W porządku! –

1

Nie sądzę, że to możliwe. To, co możesz zrobić, to wiele komponentów współużytkujących ten sam moduł obsługi zdarzeń. W zasadzie, w twoim przypadku zadeklaruj dwa przyciski i użyj tej samej metody obsługi zdarzeń.

+0

Dziękujemy za pomoc! –

3

Rozwiązany.

Sprawdzanie w sekcji UI-Swing samouczka Java, mówi.

Każdy składnik GUI może być zawarty tylko raz. Jeśli komponent jest już w kontenerze i spróbujesz go dodać do innego kontenera, komponent zostanie usunięty z pierwszego kontenera, a następnie dodany do drugiego.
6

Jak odkryłeś, nie możesz udostępniać komponentów. Istnieją jednak inne podejścia, z których możesz skorzystać.

W przypadku JButtons można dzielić Działanie:

JButton button1 = new JButton (someAction); Przycisk JButton2 = nowy JButton (someAction);

Przeczytaj sekcję z samouczka Swinga na temat How to Use Actions, aby uzyskać więcej informacji.

W innych przypadkach może chcesz udostępnić model:

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

Rozwiązanie zależy od Państwa wymagań.

Powiązane problemy