Я задал аналогичный вопрос некоторое время назад, поэтому прошу прощения за это, если я злоупотребляю сайтом, сделав это, но этот вопрос немного другой. У меня есть класс Main, в котором я создал JFrame и JPanel. Чтобы избежать беспорядка, я создал еще один класс под названием «Кнопки», чтобы держать все мои JButtons. Я хочу добавить свой JButton в mainPanel (мой JPanel), но у меня возникли проблемы с наследованием доступа к mainPanel из класса Button.Передача информации JButton от одного класса до основного класса
Вот мой главный класс:
package main;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Main extends JPanel {
public Main() {
Main m = new Main();
//The main window
JFrame Main = new JFrame("Don't Blink");
Main.setSize(500,500);
Main.setResizable(false);
Main.setVisible(true);
Main.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//The main window's panel
JPanel mainPanel = new JPanel(); //I want to add buttons to this panel from the Buttons class
mainPanel.setSize(500, 500);
mainPanel.setVisible(true);
Main.add(mainPanel);
}
public static void main(String[] args) {
Main m = new Main();
}
}
Кнопки Класс:
package main;
import javax.swing.JButton;
public class Buttons extends Main {
public Buttons(Main m) {
//The button to get a job
JButton workButton = new JButton("Get a job");
mainPanel.add(workButton);//The mainPanel here gives me
//the error "mainPanel can
//not be resolved". It
//doesn't seem to recoginze
//mainPanel
}
}
Возможно, вам не хватает вызова super() в конструкторе кнопок. И вызовите новые кнопки вместо нового Main – porfiriopartida
[Read this] (http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html), есть некоторая путаница с вашей стороны в отношении наследования. Он не будет работать так, как вы пытаетесь. –
Пока у вас есть вопросы: 8, Ответы: 12, Принятые ответы: ** 0 **. Повторите [ваши вопросы] (http://stackoverflow.com/users/2446135/user163505?tab=questions) & [accept] (http://meta.stackexchange.com/a/65088/155831) ответы! –