gpt4 book ai didi

java - JDialog无法转换为框架

转载 作者:太空宇宙 更新时间:2023-11-04 12:31:45 27 4
gpt4 key购买 nike

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

我有 3 个窗口:主窗口(JFrame)书籍 list (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。有没有办法简单打开?

谢谢。

最佳答案

好的。我找到了答案...或更可能的是,我终于理解了每个人都发布的代码: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)之后进行一些编辑,其中

SwingUtilities.getWindowAncestor(this);

可能必须是这样的

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

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

关于java - JDialog无法转换为框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37799994/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com