如何打开JDialog

时间:2013-10-22 10:47:21

标签: java swing jdialog

我正在创建一个包含1个JFrame java文件和1个JDialog java文件的应用程序。 在JFrame中,我有一个按钮,按下时我希望它显示我在JDialog中设计的内容。

例如,我的JFrame java文件名为MMainView.java,我的JDialog名为OptionView.java。因此,当按下MMainView.java中的按钮时,我想显示我在OptionView.java中设计的JDialog。

所以在我的MMainView.java文件中,我有一个按下该按钮时调用的函数。如何在OptionView.java中显示对话框?

解决

对于那些疑惑的人。这就是我所做的:

private JDialog optionView; ~~> JDialog Declaration 
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    // TODO add your handling code here:          
           if (optionView == null) {
        JFrame mainFrame = myApp.getApplication().getMainFrame();
        optionView = new OptionView(mainFrame, true);
        optionView.setLocationRelativeTo(mainFrame);
    }
    myApp.getApplication().show(optionView);
}  

3 个答案:

答案 0 :(得分:1)

听起来您想为按钮创建一个ActionListener,并在按下按钮时将JDialog的可见性设置为true。

这些方面的东西:

    final JButton button = new JButton();

    button.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent actionevent)
        {
            //set the visibility of the JDialog to true in here
        }
    });

答案 1 :(得分:0)

假设您的按钮名为myBtn。

这个课应该是这样的。

public class MMainView extends JFrame
    implements ActionListener

您应该使用按钮的监听器。

JButton myBtn = new JButton();
myBtn.addActionListener(this);

最后:

public void actionPerformed(ActionEvent e) {
    if (e.getSource() == myBtn) {
        new OptionView();

你真的不需要if,它只是为了你想为actionPerformed添加更多按钮。

答案 2 :(得分:0)

首先在“MainView.java”中注册按钮,如下所示。

b1.addActionListener(this);
b1.setName("OpenJDialog"); 
//this is to read in actionperformed method incase you have more than one button

// in action performed method call the dialogue class
public void actionPerformed(ActionEvent ae){

  JButton jb = (JButton)ae.getSource();
  String str = jb.getName();
  if(str.equals("OpenJDialog"){
     new OptionView(); 
      //I  am assuming u are configuring jdialog content in OptionView constructor
   }
}