- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在开发一个 Java 应用程序。主类框架名称为“a”。在框架“a”中,有一个组件 - jCheckBox。因此,当我检查(勾选)这个 jCheckBox 时,它会打开另一个框架“b”。我想在关闭框架“b”时取消选中 jCheckBox,但似乎无法工作。知道如何解决这个问题吗?谢谢。
编辑:但是,我可以通过取消选中框架a(在主类框架中)中的jCheckBox来关闭框架“b”。我想要实现的是当我关闭框架“b”时,它应该自动取消选中框架“a”中的jCheckBox。编译应用程序后,IDE 显示了很多错误。
我的代码:(在主框架A中)
private void jCheckBoxInfoActionPerformed(java.awt.event.ActionEvent evt) {
if (jCheckBoxInfo.isSelected()) {
System.err.println("Frame B is opened");
b.setVisible(true);
} else {
System.err.println("Frame B is closed");
frameInfo.setVisible(false);
}
}
在框架 B 中:
private void formWindowClosing(java.awt.event.WindowEvent evt) {
boolean selected = a.jCheckBoxInfo.isSelected();
System.err.println(selected); //To check the status of jCheckBoxInfo
a.jCheckBoxInfo.setSelected(false); }
输出:
Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError
at sun.awt.Win32GraphicsConfig.getBounds(Native Method)
at sun.awt.Win32GraphicsConfig.getBounds(Win32GraphicsConfig.java:222)
at java.awt.Window.init(Window.java:505)
at java.awt.Window.<init>(Window.java:537)
at java.awt.Frame.<init>(Frame.java:420)
at java.awt.Frame.<init>(Frame.java:385)
at javax.swing.JFrame.<init>(JFrame.java:189)
at b.<init>(b.java:30)
at a.<init>(a.java:36)
at b.<init>(b.java:26)
at a.<init>(a.java:36)
最佳答案
In frame A, I did make a public access to class b. Code --> public b frameInfo = new b(); While in frame B, I did make the similar call back to class a. Code --> public a frameMain = new a(); I am trying to make the application automatically uncheck jCheckBoxInfo in frame a.
那个new a()
就是问题所在;您不是取消选中现有框架中的框,而是创建一个新窗口并在那里取消选中它(这反过来会导致创建无限多个窗口;或者更确切地说,直到堆栈溢出)。
相反,您可以:
a
中添加 WindowListener
(可能使用匿名内部类,扩展 WindowAdapter
),而不是在 b
中。然后您可以直接引用windowClosing()
中的复选框。这可能是最简洁的方法,因为它避免了将 b
与 a
绑定(bind)得过于紧密,并且将可见性处理完全保留在 a
中。b
框架是一个以 a
作为父窗口的对话框,您可以使用 getOwner()
获取所有者窗口,将其转换为 a
并取消选中那里的复选框。如果没有所有者窗口(在这种情况下请参阅 about using multiple frames ),您可以将 a
实例传递给 b
,例如作为构造函数参数:
class b {
final a parent;
public b(a parent) {
this.parent = parent;
...
}
}
然后您可以使用parent
引用取消选中该复选框。
b
是 a
的内部类,则它具有对封闭对象的隐式引用,并且可以将其引用为 a.this
。无论如何,请使用对创建 b
的现有 a
的引用,而不是在 b
中创建新的 a
。
关于java - 当我关闭 jCheckBox 的子框架时,如何自动取消选中(取消勾选) jCheckBox?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30060255/
我正在开发一个需要确定选择了哪个 JCheckBox 的程序。我正在使用三个不同的按钮组,其中两个有重叠的文本。我需要能够确定是哪个触发了事件,以便将适当的费用(COSTPERROOM 与 COSTP
我正在为我的类(class)做一个项目,我有以下情况:它是一个 JDialog,它在构造函数上接收一个 Object 以使用它。对象“Album”有两个属性,根据 MySQL boolean 值可以是
我正在开发一个 Java 应用程序。主类框架名称为“a”。在框架“a”中,有一个组件 - jCheckBox。因此,当我检查(勾选)这个 jCheckBox 时,它会打开另一个框架“b”。我想在关闭框
有时我需要复选框的标签位于复选框的左侧而不是右侧,因此不使用 JCheckBox checkbox = new JCheckBox("label",false); 我愿意: JCheckBox che
如何更改 JCheckbox 中文本的位置。 我希望文本位于复选框的左侧,而不是右侧的默认文本。 我曾多次使用 jcheckbox、jtooglebutton 和 jabstractButton ap
我已经检查了所有地方是否有修复,但没有任何方法可以使我的复选框出现。我将它添加到面板并将面板添加到窗口。该按钮出现,因此肯定是复选框有问题。这是我的代码: import java.awt.Border
这个问题已经有答案了: Java ActionListener error: incompatible types (4 个回答) 已关闭 5 年前。 我最近刚刚开始学习 Java 代码。我在添加监听
我已经实现了一个返回 JCheckBox 的 TreeCellRenderer(渲染器扩展 JCheckBox 并根据项目中的标志设置其选择状态的简单代码)并且运行良好。但是,当列表中有多个项目时,它
当表模型最初未定义时如何添加jcheckbox。 我已经用数据库中的数据填充了 jtable,但现在我需要添加一个用于选择所需记录的 jcheckbox。 如果数据表行是用 boolean 类预定义的
我想在java中创建一个具有可变数量复选框的框架,这将取决于数据库中存在的行数。我面临的问题是:-1. 如何统计数据库的行数?2. 如何以及在哪里存储数据库列中存在的数据?3. 如何使用数据库列中存在
这个问题已经有答案了: How to add checkboxes to JTABLE swing [closed] (1 个回答) 已关闭 9 年前。 我创建了一个 jTable 类,它与另一个类一
我有一个 List,其中包含某种类型的 JPA Entity 对象。它们的reference字符串值显示在JList中供用户查看。 我希望我的用户能够在 UI 中选择过滤器作为 JCheckBox,例
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求提供代码的问题必须表现出对所解决问题的最低限度的了解。包括尝试的解决方案、为什么它们不起作用以及预期结果
我希望我的程序在我启用一个名为 doos 的复选框时开始在鼠标下打印 RGB 值,并且我希望它在取消选择时停止。 private void doosActionPerformed(java.a
当我选择JCheckBox时,它会自动取消选择... import javax.swing.*; import java.awt.*; import java.awt.event.*; public
我正在使用 JCheckBox 查找客户想要购买的商品,如果选择了 JCheckBox(hat),则总计 += hatprice,但它不会更新总计。我的代码: import javax.swing.*
我有一个 JCheckbox,当单击该复选框时,我想在标签内设置文本。 到目前为止,我已经声明了变量以及复选框和标签框架内的设置: JCheckBox chckbxIncludeExt;
我正在尝试创建一个 java GUI,但在显示复选框时遇到一些问题。我查看了 oracle 教程并包含了他们拥有的所有代码,但我不确定我缺少什么。有什么想法吗? public class HPAPro
我有一个帮助 Pane ,它出现在程序开始时,但可以关闭。如果用户希望它返回,菜单栏中有一个选项可以重新激活它。但是,当他们选择从帮助菜单中显示它时,它会自动重新选中“不再显示”框。如何使该框保持与用
我正在尝试 JCheckBox。我想要的是,当我选中其中任何一个(复选框)时,复选框中的文本应该显示在 jtextarea 中。 我现在拥有的是: import java.awt.*; import
我是一名优秀的程序员,十分优秀!