JTabbedPane重绘不起作用

时间:2013-11-08 11:51:01

标签: java swing jtabbedpane

这不是一个重复的问题。是的,有类似的,但没有一个提供了有效的答案。

public class Tool extends JPanel implements ActionListener{

public JPanel Panel;

public Tool() {

}

public void show(){
    displayStuff();

          Panel.setVisible(true);
          revalidate();
          repaint();
    }
}

Tool MyTool = new Tool();
JPanel Master = new JPanel();
JPanel Dash = = new JPanel();
JTabbedPane Tabs = new JTabbedPane();
JTabbedPane Tabs.addTab("Dash", Dash);
JTabbedPane Tabs.addTab("Tool", MyTool.Panel);
Master.add(Tabs);

真正的代码要复杂得多。但基本问题是,当用户按下某些按钮时,MyTool.Panel发生了更改。

在使用鼠标移动Master之前,MyTool.Panel不会重新绘制。

如何强制重绘?

1 个答案:

答案 0 :(得分:0)

它不是一个完美的解决方案,但您可以验证并重绘整个应用程序,这就是我过去所做的。我用过像

这样的东西
class MyPanel extends JPanel{
     public void doRedraw(){
         getTopLevelAncestor().revalidate();
         getTopLevelAncestor().repaint();
     }
}

希望这会有所帮助。