![](/img/trans.png)
[英]Is it possible to add a image in JFrame but the class is extended with JPanel?
[英]Swing - Methods and attributes of an extended JPanel class inaccessible from JFrame
我正在一個項目中,我有一個名為HGraphic的類,該類擴展了JPanel。 此類具有一個稱為updateNum的公共方法,該方法接收一個整數作為參數並對其進行一些處理,從而更新某些元素。
這個HGprahic類在我的項目的主類中有一個實例(主類擴展了JFrame)...我需要從主類調用HGraphic的此特定方法,並將變量作為參數發送。
問題是,盡管該方法被聲明為public,但我無法像往常一樣通過正常的hGraphicInstance.method(variable)來訪問它。
我遍歷了JPanel文檔,但沒有發現任何地方表明您無法訪問自定義方法...或無法創建setter(做我需要的另一種方式)。
當我實例化HGraphic類時,我使用JComponent類來做到這一點,這可能是原因嗎?
您有什么想法或建議嗎? 在這件事上,我將不勝感激。非常感謝!!!
我放置代碼的主要部分:
// CLASS CAUSING THE PROBLEM ------------------
public class HGraphic extends JPanel {
// Attributes
public int numberOfCoincidences = 0;
// Constructor
public HGraphic() {
super(new BorderLayout());
}
public void updateNum(int tmpNum) {
numberOfCoincidences = tmpNum;
}
}
// MAIN FRAME CLASS ----------------------------------
public class HSFrame extends javax.swing.JFrame {
private int newNum = 5;
private JComponent newContentPane;
public HSFrame() {
initComponents();
}
private void initComponents() {
newContentPane = new HGraphic();
// HERE IS WHERE I WOULD LIKE TO ACCESS THE CLASS METHOD
// NetBeans say it does not recognize this method :(
newContentPane.updateNew(newNum);
}
}
再次感謝你!
因為您的實例( newContentPane
)類型是JComponent
。 您需要將其定義為HGraphic
或在方法調用之前進行HGraphic
。
private ***JComponent*** newContentPane;
需要更改為:
private HGraphic newContentPane;
或在您的方法調用中:
((HGraphic) newContentPane).updateNum(newNum);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.