我今天才刚开始用Java swing进行编码,所以我非常新手,如果我的问题很愚蠢,对不起。我已经在网上搜索了很多,但是什么也没找到。
我的问题是我无法让setVisible(false)
看不见Jfraim。
代码非常简单。一个仅带有按钮的窗口,在单击该按钮后将显示一个showMessageDialog
“ Hello World”,我希望此后该窗口不可见。
这是我的代码:
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Temp extends JFrame{
private JPanel panel1;
private JButton button1;
private Temp() {
button1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
setVisible(false);
JOptionPane.showMessageDialog(null, "Hello World");
}
});
}
public static void main(String[] args) {
JFrame tempWindow = new JFrame("TempWindow");
tempWindow.setContentPane(new Temp().panel1);
tempWindow.setLocationRelativeTo(null); // this line set the window in the center of the screen
tempWindow.setDefaultCloseOperation(tempWindow.EXIT_ON_CLOSE);
tempWindow.pack();
tempWindow.setVisible(true);
}
}
我不知道我在做什么错。我所做的一切都和this youtube video一样,但是单击按钮后,我的窗口将不可见。
任何帮助将不胜感激。
答案 0 :(得分:2)
尝试一下。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Temp {
private JPanel panel1;
private JButton button1;
JFrame tempWindow = new JFrame("TempWindow");
private Temp() {
button1 = new JButton("Button");
tempWindow.add(button1);
button1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
tempWindow.setVisible(false);
JOptionPane.showMessageDialog(null, "Hello World");
}
});
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> new Temp().start());
}
public void start() {
tempWindow.setLocationRelativeTo(null); // this line set the window in the
// center of the screen
tempWindow.setPreferredSize(new Dimension(500, 500));
tempWindow.setDefaultCloseOperation(tempWindow.EXIT_ON_CLOSE);
tempWindow.pack();
tempWindow.setLocationRelativeTo(null); // centers on screen
tempWindow.setVisible(true);
}
}