【问题标题】:JDialog cannot be converted to frameJDialog 无法转换为框架
【发布时间】:2016-06-13 22:14:35
【问题描述】:

我想做一个应用程序,您可以在其中添加学生,然后为每个人分配 20 本书。

我有 3 个窗口: 主窗口(JFrame) 书籍清单(JDialog) 添加一本书(JDialog)

我有 JFrame,我可以在其中查看所有学生的列表,然后单击“图书列表”,我可以在其中查看数据库中所有图书的列表(.txt 文件)。因此,当我单击 JFrame 中的那个按钮时,我打开了 JDialog,它工作正常。但是现在我想在列表中添加一些书籍,所以我单击“书籍列表”JDialog 中的“添加书籍”按钮。所以我只想在前一个 JDialog 的顶部打开另一个 JDialog。

所以我在“书籍列表”窗口(我从主窗口打开)我想打开“添加书籍”窗口。

现在,当我通过与从 JFrame 打开 JDialog 相同的方法执行此操作时,它会显示错误:

private void pridatKnihuJButtonActionPerformed(java.awt.event.ActionEvent evt) {                                                   
    addBookJDialog newwindow = new addBookJDialog(this, true);
    newwindow.setLocationRelativeTo(null);
    newwindow.setVisible(true);
}  

它显示:

不兼容的类型:addBookJDialog 无法转换为 Frame。

有没有简单的方法来做到这一点? 我正在 NetBeans 设计功能中创建这些窗口。

我发现了一些关于在另一个 JDialog 上打开一些 JDialog 的主题,但我不明白该怎么做:/ 有 3 行代码可以打开另一个 JDialog。有没有办法简单地打开它?

谢谢。

【问题讨论】:

  • 只创建一个 JDialog,从另一个动作中重用它(所有清除必须在 setVisible(false) 被调用之前完成)

标签: java swing jframe jdialog


【解决方案1】:

好的。我找到了答案......或者更有可能,我终于理解了每个人都发布的代码:D 2 小时寻找这个:D

如果有人有同样的问题。答案是:

当您单击对话框按钮中的按钮时,然后前往该按钮的 ActionPerformed 部分(在 NetBeans 设计部分中双击该按钮)。

并写下:

JFrame frame = (JFrame) SwingUtilities.getWindowAncestor(this);
    <target dialog> <optional name> = new <target dialog>(frame,true);
    <optional name (but same as above)>.setLocationRelativeTo(null);
    <optional name (but same as above)>pridatzaznam.setVisible(true);

导入需要导入的内容,然后就可以了。

它可能需要这两个: 导入 javax.swing.JFrame; 导入 javax.swing.SwingUtilities;

例子:

JFrame frame = (JFrame) SwingUtilities.getWindowAncestor(this);
    dialogIWantToOpen openthis = new dialogIWantToOpen(frame,true);
    openthis.setLocationRelativeTo(null);
    openthis.setVisible(true);

将在当前对话框的顶部打开一个对话框,但前提是当前对话框是从 JFrame 打开的。

如果你想在对话框顶部打开对话框等...它可能需要在 (JFrame) where 之后进行一些编辑

SwingUtilities.getWindowAncestor(this);

应该是这样的

SwingUtilities.getWindowsAncestor(SwingUtilities.getWindowAncestor(this));

所以这将打开一个对话框,该对话框是从一个从 JFrame 打开的对话框打开的对话框中打开的。但我不确定它是否会起作用。没试过。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多