我有两个类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()不起作用。它仍然更新复选框,如果我使用静态 –