我正在创建一个包含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);
}
答案 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
}
}