Не работает обращением к элементу - Java
Формулировка задачи:
Доброго времени суток. Имеется код,и в функции "SettingsActionPerformed",в строке "Menu.setVisible(false);" появляется ошибка. В чем проблема?
Так же,знатоки,если можете,дайте советы по оптимизации кода (Java начал изучать недавно,не кидайтесь тапками за говнокод).
package division;
import java.awt.*;
import javax.swing.*;
public class Window extends JFrame {
int vert,hor,ma,mb;
Window(){
super("DIVISION");
Dimension sSize = Toolkit.getDefaultToolkit().getScreenSize();
vert = sSize.height;
hor = sSize.width;
//Setings of buttons//
ma=300;//height//
mb=30;//width//
//------------------//
//Setings of window//
setResizable(false);
setUndecorated(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
//----------------//
JPanel Menu = new JPanel();
/*->*/JButton Back = new JButton("Назад");
/*->*/JButton Settings = new JButton("Настройки");
/*->*/JButton Exit = new JButton("Выход");
JPanel SettingsMenu = new JPanel();
Menu.setLayout(null);
Menu.setBackground(Color.red);
Back.setSize(ma, mb);
Back.setLocation((hor/2)-(ma/2),100);
Back.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
BackActionPerformed(evt);
}
});
Menu.add(Back);
Settings.setSize(ma, mb);
Settings.setLocation((hor/2)-(ma/2),200);
Settings.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
SettingsActionPerformed(evt);
}
});
Menu.add(Settings);
Exit.setSize(ma, mb);
Exit.setLocation((hor/2)-(ma/2),300);
Exit.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
ExitActionPerformed(evt);
}
});
Menu.add(Exit);
setContentPane(Menu);
setSize(hor,vert);
}
private void BackActionPerformed(java.awt.event.ActionEvent evt) {
}
private void SettingsActionPerformed(java.awt.event.ActionEvent evt) {
Menu.setVisible(false);
}
private void ExitActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
}
}package division;
import javax.swing.*;
public class DIVISION {
public static void main(String[] args) {
JFrame Window = new Window();
Window.setVisible(true);
}
}Решение задачи: «Не работает обращением к элементу»
textual
Листинг программы
public static void main(String[] args) {
Window window = new Window();
window.setVisible(true);
}