Java Swing:单击一个按钮后创建新窗口?

时间:2014-03-26 13:51:02

标签: java swing events jframe

我是摇摆不定的新手,我想知道如何创建一个功能,当点击一个按钮时,新的Jframe会打开吗?例如,如果您单击“搜索”,则会弹出一个新屏幕,允许用户按特定条件搜索?

3 个答案:

答案 0 :(得分:1)

您可以像创建第一个JFrame一样创建第二个JFrame。

但你正在寻找的可能是一个对话:http://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html

如果您的问题是关于如何在点击按钮时执行某些操作,那么您正在寻找ActionListener:http://docs.oracle.com/javase/tutorial/uiswing/events/actionlistener.html

答案 1 :(得分:0)

首先,您需要在按钮上实现ActionListener,以定义单击时发生的情况。 在这个Actionlistener中,只需调用一个方法来创建一个具有适当内容的新JFrame。

您还可以创建多个JPanel并在它们之间切换,而不是打开新帧。

答案 2 :(得分:0)

以下是我正在处理的应用程序的示例。我通过文本以便它可以显示在新屏幕上,但如果您不需要,则无需这样做。

我在名为PopupScreen的类中有一个创建新Frame

的方法
private static void createWindowWithText(final String text) {
    final JFrame popup = new JFrame();
    popup.setPreferredSize(new Dimension(600,450));

    //Add in whatever components you want

    popup.pack();
    popup.setLocationRelativeTo(null);

    popup.setVisible(true);
}

然后从动作中调用它:

private final AbstractAction showTextAction = new AbstractAction("Show Text") {
    public void actionPerformed(final ActionEvent e) {
         PopupScreen.createWindowWithText("Some Text");
    }
};

此操作与按钮相关联,如下所示:

this.showTextButton.setAction(showTextAction);