制作 JPanel 弹出窗口

问题描述 投票:0回答:3

我正在为计算机开发一个应用程序,我有一个 JFrame 上面有很多 JPanel,当我点击一个按钮时,我想要另一个 JPanel 弹出。

例子:当我点击这个按钮时 http://i62.tinypic.com/c2fzr.jpg

我想让这个窗口弹出 http://i62.tinypic.com/2qi0in7.jpg

我已经尝试制作一个弹出菜单,但我不想要菜单,我想要一个窗口,但我看不到如何去做:( 这可能很容易,但我对 java 的了解不够

有什么帮助吗?谢谢大家!

java netbeans jframe jpanel
3个回答
3
投票

好的,为此你需要 2 个 JFrames。第一个是按钮和所有东西所在的位置,第二个是将弹出的那个。您将有 3 个班级:

Main
classWhere1stJframeis
ClassWhere2ndJframeis
.

这是

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");
    }
}

1
投票

这不仅仅是一个您想要弹出的面板,它会被视为一个完整的其他框架。我建议制作一个不同的 JFrame 类,当单击按钮时实例化另一个框架。


0
投票

您很可能不希望弹出一个 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();

    }
});
© www.soinside.com 2019 - 2024. All rights reserved.