首先,您知道JDialog和JOptionPane - 这些类通常是显示另一个弹出窗口的更好方法。很少使用 2 个 JFrame(尽管有时这样做是明智的)。
其次,您是否完成了 pack() 和 setVisible(true)?
下面的代码对我来说很好。要么这对您不利,并且与您的 Java 实现有关,要么您必须做一些不同的事情,在这种情况下,您可以告诉我们它是什么:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class JLabelShower {
public static void main(String [] args) {
JFrame mainFrame = new JFrame("main frame");
JButton popup = new JButton("start new frame");
mainFrame.getContentPane().add(popup);
mainFrame.pack();
mainFrame.setVisible(true);
popup.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFrame newFrame = new JFrame("new frame");
JPanel newPanel = new JPanel();
JLabel title = new JLabel("title");
newPanel.add(title);
newFrame.setContentPane(newPanel);
newFrame.pack();
newFrame.setVisible(true);
}
});
}
}