我正在为计算机开发一个应用程序,我有一个 JFrame 上面有很多 JPanel,当我点击一个按钮时,我想要另一个 JPanel 弹出。
例子:当我点击这个按钮时 http://i62.tinypic.com/c2fzr.jpg
我想让这个窗口弹出 http://i62.tinypic.com/2qi0in7.jpg
我已经尝试制作一个弹出菜单,但我不想要菜单,我想要一个窗口,但我看不到如何去做:( 这可能很容易,但我对 java 的了解不够
有什么帮助吗?谢谢大家!
好的,为此你需要 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");
}
}
这不仅仅是一个您想要弹出的面板,它会被视为一个完整的其他框架。我建议制作一个不同的 JFrame 类,当单击按钮时实例化另一个框架。
您很可能不希望弹出一个 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();
}
});