簡體   English   中英

從jpanel類添加到jframe中的jframe中的call函數

[英]call function in the jframe from the jpanel class which was added on jframe

我有一個名為frame的jframe,一個名為mainpanel的jframe中的1個jpanel和另一個名為ControlPanel的類的jpanel。

jpanel ControlPanel已添加到jframe框架的主面板中。

private void onLoad(){
ControlPanel cpanel = new ControlPanel;
mainpanel.add(cpanel);
}

在jframe框架內,我有一個功能:

public void hideComponents(){
//code here
}

由於我已經將cpanel添加到框架的主面板中,如何從cpanel內部調用框架中的函數?

我所做的事情在controlpanel類中聲明為框架

private MainFrame frame;

然后創建一個調用框架功能的按鈕

frame.hideComponents(); // error occurs pointing here "NullPointerException"

您必須將MainFrame類實例作為參數傳遞給ControlPanel構造函數,然后從那里調用hideComponents方法。 示例在這里:

public final class ControlPanel extends JPanel {
    // Optional: you can even declare your MainFrame as private field member
    // if you want to keep track of the frame instance. But let's assume
    // you don't need that in your occasion

    public ControlPanel(MainFrame frame) {
          frame.hideComponents();
    }
    //maybe other code 
    ...
}

例:

private void onLoad(){
  ControlPanel cpanel = new ControlPanel(MainFrame.this);
  mainpanel.add(cpanel);
}

您的對象未初始化。

嘗試

frame = new MainFrame();

frame.hideComponents();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM