Java 为了显示JDialog,我必须给它什么样的变量
我在NetBeans上使用设计模式来创建多个JFrame。我目前正在尝试制作一个JDialog,但我不知道我必须给它什么样的变量 因为设计模式为我编写了代码,我不能为了让它工作而编辑它。在主表生成的代码中获得双击事件已经相当麻烦了 这就是我试图运行的代码。public void双击是创建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
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)
- 不兼容的类型
无法转换为帧
不兼容的类型无法转换为帧
您已经在ClickListener
的上下文中创建了该对话框。含义此
指的是点击监听器
。要将this
更改为框架,需要在框架的类名前面加前缀,如MyFrame。this
旁注
- 我注意到dialog类有一个
方法。你不需要那个。应用程序应该只有一个main
方法,该方法位于frame类中。去掉main
方法,添加窗口侦听器并将其设置为在构造函数中可见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);