Java 为了显示JDialog,我必须给它什么样的变量

Java 为了显示JDialog,我必须给它什么样的变量,java,swing,netbeans,jdialog,Java,Swing,Netbeans,Jdialog,我在NetBeans上使用设计模式来创建多个JFrame。我目前正在尝试制作一个JDialog,但我不知道我必须给它什么样的变量 因为设计模式为我编写了代码,我不能为了让它工作而编辑它。在主表生成的代码中获得双击事件已经相当麻烦了 这就是我试图运行的代码。public void双击是创建Jdialog新实例的地方 masterTable.addMouseListener( new ClickListener() { public void singleClick (MouseEv

我在NetBeans上使用设计模式来创建多个JFrame。我目前正在尝试制作一个JDialog,但我不知道我必须给它什么样的变量

因为设计模式为我编写了代码,我不能为了让它工作而编辑它。在主表生成的代码中获得双击事件已经相当麻烦了

这就是我试图运行的代码。public void双击是创建Jdialog新实例的地方

masterTable.addMouseListener( new ClickListener() {
        public void singleClick (MouseEvent e) {
            System.out.println("single");
            JTable target = (JTable) e.getSource();
            int row = target.getSelectedRow();
            int col = 0;
            Object data = (Object) target.getValueAt(row, col);
            String id = data.toString();
            System.out.println("Er is geklikt op de rij met ID nummer: " + data);
            try {
                GetSelectedData(id);
            } catch (SQLException ex) {
                Logger.getLogger(InzienDienstgegevensForm.class.getName()).log(Level.SEVERE, null, ex);
            }
            try {
                DisplayPaymentInfo(id);
            } catch (SQLException ex) {
                Logger.getLogger(InzienDienstgegevensForm.class.getName()).log(Level.SEVERE, null, ex);
            }

        }
        public void doubleClick (MouseEvent e){
            System.out.println("double");
            JTable target = (JTable) e.getSource();
            int row = target.getSelectedRow();
            int col = 0;
            Object data = (Object) target.getValueAt(row, col);
            String id = data.toString();
            System.out.println("Er is geklikt op de rij met ID nummer: " + data);
            InzienSelectieDialoog dialoog = new InzienSelectieDialoog(this, true);
        }
    }); 
My JDIALOG具有以下构造函数,可在public void Run()中运行:

为了让JDialog能够正常工作,我需要调整两件事:

  • 我希望使用正确的属性使其可见。所以我需要在(…,…)构造函数中放置一些东西。。。但我不知道我要在那里放些什么
  • 我想给出一个字符串id(其中包含Jdialog打印正确值所需的id)
欢迎任何建议

如果我需要提供更多的代码或信息我想做什么,请问我,我会这样做

编辑:masterTable.addMouseListener位于公共void initComponents()中。新JDialoog(InzienGegevensSelectie)中的this给出以下错误:

  • 不兼容的类型无法转换为帧
新JDialoog(InzienGegevensSelectie)中的this给出以下错误:

不兼容的类型无法转换为帧

您已经在
ClickListener
的上下文中创建了该对话框。含义
指的是
点击监听器
。要将
this
更改为框架,需要在框架的类名前面加前缀,如
MyFrame。this


旁注

  • 我注意到dialog类有一个
    main
    方法。你不需要那个。应用程序应该只有一个
    main
    方法,该方法位于frame类中。去掉
    main
    方法,添加窗口侦听器并将其设置为在构造函数中可见

  • 我不知道您为什么要尝试在dialog类的main方法中实例化dialog。它应该只需要从frame类中实例化


在您的
双击方法中,您应该在创建的实例中调用
.setVisible()
。实际上,为inzieselectiedialog提供代码会有很大帮助。使用父级
JFrame
作为“变量”传递对话框。另请参见@OstapAndrusiv“为..提供代码在这里会有很大帮助”最有帮助的是一个(最小完整且可验证的示例)。)@我不确定我是否需要提供比我已经提供的更多的东西。构造函数和runnable是导致问题的唯一两个。@DannyHoeve没关系,那时还没有看到InzieselectiveDialog中的
costructor。这是设计模式为我做的事情。由于我不是很熟悉它所做的一切,我也不想删除它的大部分,因为它的工作原理和它一样。我确实在JDialog中删除了它,现在JDialog工作了。谢谢
public InzienSelectieDialoog(java.awt.Frame parent, boolean modal) {
    super(parent, modal);
    initComponents();
}

public static void main(String args[]) {

    /* Create and display the dialog */
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            InzienSelectieDialoog dialog = new InzienSelectieDialoog(new     javax.swing.JFrame(), true);
            dialog.addWindowListener(new java.awt.event.WindowAdapter() {
                @Override
                public void windowClosing(java.awt.event.WindowEvent e) {
                    System.exit(0);
                }
            });
            dialog.setVisible(true);
        }
    });
}
new InzienSelectieDialoog(this, true);