[英]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.