我有兩個類mainpanel.java和subpanel.java。 subpanel.class包含一個複選框和一些標籤。當我點擊mainpanel.java中的某些按鈕時,我想更改這些組件的setSelected()和setText()。訪問其他類的swing組件
我在subpanel.java中創建了一個方法,我從mainpanel.java調用並傳遞布爾值。
public void schedulerchange(boolean check){
System.out.println("checked"+check);
scheduleenabler.setEnabled(check);
scheduleenabler.setSelected(check);
scheduleinfo.setText("Scheduler in On");
//subpanel21.updateUI();
}
當我打電話從mainpanel.java函數被調用此功能,但值不會改變,除非我做JCheckBox的和靜態的JLabel。但從我學到的東西我們不應該使用靜態組件,除非非常必要。 有沒有其他的方法來改變組件?
我想在設置啓用調用** scheduleenabler.revalidate()**將做的伎倆。 – Amarnath
*「我有兩個類mainpanel.java和subpanel.java」*不要擴展任何一個。只需保留一個參考。保持對文本組件的引用,並解決問題。還請學習類的常用[Java命名約定](http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html#73307)(具體用於名稱的情況)方法和屬性名稱並一致使用它。 –
@che revalidate()不起作用。它仍然更新複選框,如果我使用靜態 –