Здравствуйте, я пишу своеобразное Меню для программы шифрования, которую я пишу. Я закончил его, и теперь я хочу попытаться создать для него графический интерфейс. Вот код для первого меню:Закрытие JFrame после нажатия кнопки Java
package matrix_with_GUI;
import javax.swing.*;
import java.awt.event.* ;
import java.awt.* ;
public class Main_Menu extends JFrame implements ActionListener{
private JButton action1 = new JButton ("");
private JButton action2 = new JButton ("");
private JPanel pane = new JPanel();
private JLabel lbl;
public static void main(String[] args) {
Main_Menu main = new Main_Menu();
}
public Main_Menu(){
super();
JPanel pane=new JPanel();
setTitle ("Start Menu") ;
JFrame frame = new JFrame("");
setVisible(true);
setSize (380, 260) ;
setLocation (450, 200) ;
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE) ;
action1 = new JButton("Start");
action2 = new JButton("Exit");
lbl = new JLabel ("Welcome to the Matrix Encoder/Decoder!!!");
setLayout(new FlowLayout());
add (lbl) ;
add(action1, BorderLayout.CENTER);
action1.addActionListener (this);
add(action2, BorderLayout.CENTER);
action2.addActionListener (this);
}
@Override
public void actionPerformed(ActionEvent event) {
// TODO Auto-generated method stub
OptionsMenu x = new OptionsMenu();
if (event.getSource() == action1)
{
System.exit(0);
x.OptionsMenu();
}
else if(event.getSource() == action2){
System.exit(0);
}
}
} Когда кнопка Start нажата, новое меню появляется все прекрасно и хорошо, но первое меню остается открытым. Есть ли способ закрыть это первое меню И открыть второе меню с помощью первой кнопки? Я очень новичок в GUI, поэтому самое простое решение было бы очень полезно. На боковой ноте есть простой способ переместить кнопку «Пуск» на следующую строку? Благодаря
Пожалуйста, проверьте: [в потребительной из-множественных jframes-хорошо-плохо -practice] (http://stackoverflow.com/questions/9554636/the-use-of-multiple-jframes-good-bad-practice) –
'System.exit (0);' приведет к остановке JVM. – Maroun
1) Не выдвигайте рамки или другие контейнеры верхнего уровня. Вместо этого создайте & используйте экземпляр одного. 2) Не устанавливайте размер контейнеров верхнего уровня. Вместо этого разместите контент и вызовите 'pack()'. –