У меня есть проблема, когда я пытаюсь вызвать JFrame, который находится в общественного меню метода в начале другого метода (addAButton) внутри того же класса но не работает. Я попытался позвонить addAButton внутри общедоступное меню, но я наклоняю, потому что я не могу поместить контейнер в этот класс. Код:Получение JFrame из исходного метода в другой метод
public class Menu {
public Menu(Component component) {
JFrame frame = new JFrame("...");
frame.setSize(new Dimension(1050, 700));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(component);
// Set up the content pane.
try {
frame.setContentPane(new JLabel(new ImageIcon(ImageIO
.read(new File("res/menuBackground.png")))));
} catch (IOException e) {
e.printStackTrace();
}
addComponentsToPane(frame.getContentPane());
// Display the window.
frame.pack();
frame.setVisible(true);
}
public static void addComponentsToPane(Container pane) {
//some code...
pane.setLayout(new BoxLayout(pane, BoxLayout.Y_AXIS));
addAButton("SP", "res/Singleplayer.png",
"res/Singleplayer_pressed.png", pane, true);
//other buttons...
}
public static void addAButton(final String text, String BtnIcon,
String PressBtnIcon, Container container, Boolean isEnabled) {
//stuff for buttons...
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (button.getText().equals("Q")) {
System.exit(0);
} else if (button.getText().equals("SP")) {
Component component = new Component();
//here I want to put frame.dispose to close this window for when the game window opens.
component.start();
} else if(button.getText().equals("O")) {
//here I want to put frame.dispose to close this window for when the options window opens.
Component.Options();
}
}
});
}
}
Если ответ RealSkeptic не отвечает на ваш вопрос, пожалуйста, уточните свой вопрос немного подробнее, объяснив более подробно и с большей ясностью, если это возможно, только в том, что не так. Я не уверен, что у меня есть проблема с вашей проблемой (но, надеюсь, RealSkeptic делает!). –
Он сделал это, я попытался как можно яснее, но я едва мог понять это сам. Когда я попытался это решить, у меня возникли проблемы. –
Отлично. Я уже несколько раз задумывался над его рекомендациями. –