Я работаю над проектом, где у меня есть класс HGraphic, который расширяет JPanel. Этот класс имеет открытый метод updateNum, который получает целое число как параметр и выполняет некоторую работу с ним, обновляя некоторые элементы.Swing - Методы и атрибуты расширенного класса JPanel недоступны из JFrame
Этот класс HGprahic имеет экземпляр в основном классе моего проекта (основной класс расширяет JFrame) ... Мне нужно вызвать этот конкретный метод HGraphic из основного класса, посылая переменную в качестве параметра.
Проблема заключается в том, что, хотя метод объявлен как открытый, я не могу получить к нему доступ, выполняя нормальный hGraphicInstance.method (переменная), как я обычно делаю.
Я просмотрел документацию JPanel, но нигде не нашел, что вы не можете получить доступ к пользовательским методам ... или что вы не можете создавать сеттеры (другой способ делать то, что мне нужно).
Когда я создаю экземпляр класса 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);
}
}
Еще раз спасибо!
переформатирован код; пожалуйста, верните, если это неверно. – trashgod