2011-01-10 65 views
1

我有一个主类,它包含一些面板和一些按钮,还有一个其他类,我想通过它设置主类中按钮的可见性。设置从另一个类的jButton的可见性

我已经添加了一个功能设置在主类 像可视性:

// This is my main class 
public void setVisibility(boolean flag) 
{ 
    mybutton.setVisible(flag); 
} 

// this is class which calls the method, 
my_constructor.setVisibility(false); 

,但是这是行不通的,任何人可以帮助?

+1

你可以在你的例子中提供更多的代码吗?这应该可以正常工作,即使没有调用repaint()(invalidate()实际上会更好!)。也许检查你的线程,如果美国东部时间没有举行某个地方? – 2011-01-10 12:04:55

回答

0

您是否在设置可见性后尝试重新绘制面板?

// This is my main class 
public void setVisibility(boolean flag) 
{ 
    mybutton.setVisible(flag); 
    myPanel.repaint(); 
} 
+0

试过....但是有帮助..... – Shital 2011-01-10 11:48:42

0

您是否调用EventDispatcherThread上的setVisibility(boolean)方法? (不能从你发布的小代码中知道)。

Runnable runnable = new Runnable() { 
    public void run() { 
     setVisibility(flag); 
    } 
}; 

EventQueue.invokeLater(runnable); 

另一个小问题是,您正在使用名为setVisibility()的方法封装对setVisible()方法的调用。如果我不得不在你后面维护那个代码,我会诅咒你的名字:-)恕我直言,只要使方法名称相同即可。