java 制作JPanel弹出窗口

rjzwgtxy  于 2023-04-04  发布在  Java
关注(0)|答案(3)|浏览(189)

我正在开发一个电脑应用程序,我有一个JFrame,上面有很多JPanel,当我点击一个按钮时,我希望弹出另一个JPanel。
示例:当我点击这个按钮http://i62.tinypic.com/c2fzr.jpg x1c 0d1x
我希望此窗口弹出http://i62.tinypic.com/2qi0in7.jpg

我已经试过做一个弹出菜单,但是我不想要菜单,我想要一个窗口,我不能看到找到如何做到这一点:(这可能很容易,但我没有足够的知识在java
有帮助吗?谢谢大家!

nmpmafwu

nmpmafwu1#

好的,为此,你需要2个JFrame。第一个是按钮和所有东西的位置,第二个是将弹出的位置。你将有3个类:一米零一米零一米零一米零一米零一米零一米零一米零一米零二米零一米零。
main

package proba;

import javax.swing.JFrame;

public class mejn {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Frame1 frejm = new Frame1();
        frejm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frejm.setVisible(true);
        frejm.setSize(250, 300);
    }
}

Frame1

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;

public class Frame1 extends JFrame {
    JFrame Frame = new JFrame();
    JButton Button1 = new JButton();

    public Frame1()
    {
        super("The title");

        Frame = new JFrame();
        Button1 = new JButton();
        Frame.add(Button1);

        thehandler handler = new thehandler();
        Button1.addActionListener(handler);
    }

    private class thehandler implements ActionListener
    {
        public void actionPerformed(ActionEvent event)
        {
            if(event.getSource()==Button1)
            {
                Frejm2 frejm = new Frejm2();
                frejm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frejm.setVisible(true);
            }
        }
    }
}

Frame2

import javax.swing.JFrame;

public class Frejm2 extends JFrame {
    JFrame Frame2 = new JFrame();

    public Frejm2()
    {
        super("Title");
    }
}
kadbb459

kadbb4592#

我建议创建一个不同的JFrame类,当单击按钮时,它会示例化另一个框架。

v8wbuo2f

v8wbuo2f3#

您很可能不希望弹出JFrame,而是希望弹出模态对话框,并且可能希望代码在用户输入必要信息后继续运行。
按钮的代码如下所示:

JButton button = new JButton("Nova Festa...");
button.addActionListener(new ActionListener() {

    NovaFestaPanel nfp = new NovaFestaPanel();  // this is a panel you create that contains all the fields that you expect and getters/setters for them
    nfp.setXXXX(); // use the setters to prepopulate the panel if you need

    if (JOptionPane.showInputDialog(this, nfp)==JOptionPane.OK_OPTION) {

        // the user entered some data and pressed the OK button.
        // use the getters and do the needful with these values
        String xxxx = nfp.getXXXX();

    }
});

相关问题