从Jinternalframe刷新JFrame

时间:2013-03-07 13:24:27

标签: java swing refresh

Hello Friends我有一个扩展JFrame并具有JInternalFrames的swing应用程序。我需要从JInternalFrame中的ActionEvent刷新MainFrame。 我的主框架(伪)

    public class MainFrame extends JFrame{
    .................

    }
public void Refresh(){
    invalidate();
    validate();
    }

我的JInternalFrame(Pseud0)

public class EndOfTerm extends JInternalFrame implements ActionListener{

public void actionPerformed(ActionEvent ae){

.........
new MainFrame().Refresh();

}

}

我在ActionEvent之后得到两个帧,一个没有组件,第二个带有似乎重叠的组件。请帮忙。 #Beginner#

2 个答案:

答案 0 :(得分:1)

您必须将您的MainFrame保存在InternalFrame中。

public class EndOfTerm extends JInternalFrame implements ActionListener{

    private MainFram mainFrame;

    public EndOfTerm(MainFrame mainFrame) {
        this.mainFrame = mainFrame;
    }

    public void actionPerformed(ActionEvent ae){

        .........
        mainFrame.Refresh();

    }

}

创建内部框架时,必须传递MainFrame。

new InternalFrame(this);

答案 1 :(得分:0)

我认为您也可以在JInternalFrame中调用getParent(this)来获取对封闭JFrame的引用。