Nicht entsorgen jframe Fenster?
Ich versuche, Sie zu entsorgen die Schwierigkeit Fenster nach einem der Schwierigkeitsgrad Schaltfläche geklickt aber es wird nicht passieren. Ich habe versucht .dispose
und frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
aber ich kann es nicht bekommen. Ist es nur die Platzierung oder mehr?
import java.awt.FlowLayout;
import java.awt.event.*;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.GridLayout;
public class Game extends JFrame{
public static JFrame frame = new JFrame();
private JLabel lab;
public static void main(String[] args) {
Game difficulty = new Game();
difficulty.setSize(350,105);
difficulty.setTitle("Difficulty.");
difficulty.setVisible(true);
difficulty.setLocationRelativeTo(null);
/**Game sudoku = new Game();
sudoku.setSize(900, 900);
sudoku.setVisible(false);*/
}
public Game(){
setLayout(new FlowLayout());
lab = new JLabel("Please select your difficulty.");
add(lab);
JButton easy;
easy = new JButton("Easy");
add(easy);
easy.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
//Execute when button is pressed
System.out.println("You clicked the button");
JFrame.dispose();
}
});
JButton medium;
medium = new JButton("Medium");
add(medium);
JButton hard;
hard = new JButton("Hard");
add(hard);
JButton evil;
evil = new JButton("Evil!");
add(evil);
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
dispose()
- Methode ist nicht statisch, es wird also nicht funktionieren, wenn Sie ihn direkt ausJFrame
Klasseversuchen zu tun :
Oder zu entsorgen
frame
Objekt, das Sie erstellt habenLesen Sie mehr über
JFrame
Zuerst von allen, du bist JFrame erweitern und erstellen ein Objekt von JFrame, wenn ich mich nicht falsch, das sollte nicht getan werden.
Und als @Salah sagte, JFrame ist nicht statisch, so sollte es sein:
Um Ihr problem zu lösen, sind Sie mit der Entsorgung eine neue JFrame (ja, Sie haben 3 JFrames in einer Klasse, statt 1, das ist, was Sie wollen), mit:
JFrame.dispose();
wenn Sie bereits ein Objekt erstellt, oder du bist JFrame erweitern, können Sie:oder
Ich hatte das gleiche problem:
mein problem gelöst.
Versuchen Sie das jFrame unsichtbar vor dem entsorgen es:
Wenn Sie wollen, schließen Sie das gesamte Programm, Sie können mit System.exit(0);
Statt
JFrame.dispose();
verwendenframe.dispose()
oderJFrame.this.dispose();