问题标签 [swingutilities]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JAVA Swing Gui 窗口挂起
我在使用 SWING GUI 时遇到问题,或者至少我认为这是 Swing gui。
这是我的主要代码文件:
创建框架并打开它的简单调用。还有其他文件我没有放在这里以获得空间。但是我遇到的问题(我已经在几台机器和操作系统上尝试过)是窗口上的按钮似乎挂起。我可以选择窗口并单击按钮,它们会像被击中一样突出显示,但没有任何反应。我有一个选项卡式平面,单击其他选项卡也无济于事。有时会持续大约 15 秒,有时会持续几分钟。但它总是最终会回来并响应新的输入(即它不记得我在它回来之前所做的所有点击)。整个应用程序很简单,因为它一直等到用户做某事后再做某事,所以我对为什么它似乎挂起感到困惑。
任何帮助,将不胜感激。
谢谢
swing - 这个方法 invokeOnEventDispatchThread 做什么?
我在我的代码库中遇到了以下代码,但我不明白它是如何工作的。我是 Swing 的一个新手,因此如果这看起来是一个愚蠢的问题,我很抱歉。
}
这里会在事件调度线程中立即调用 r.run() 吗?r.run() 方法的重点是尽快调用,将其移动到队列的头部吗?
谢谢。
java - SwingUtilities.convertPoint() 返回负值
我在另一个具有复杂 JPanels 结构和大量代码的项目中面临这个问题。
在那里我有一个以下片段
其中标签和面板是动态选择的,JLabel 应该是 JPanel 的 grand-grand-...-child。
那么为什么问题是SwingUtilities.convertPoint()
如果源和目标具有子父关系,在什么情况下可以返回负值?这可能吗?
此代码演示了负坐标问题,但 panel22 不是标签的父级。
所以输出是
UPD:基本上,我需要获取label
相对于panel21
. 我怎样才能修改这条线来实现它?
java - 如何检查整个组件是否在屏幕上?
我正在使用包含自定义弹出窗口的 3rd 方插件。此弹窗被添加到选项卡窗格中,当它出现时,如果靠近 JFrame 边框,则只有一部分会出现,其余部分将退出屏幕,就好像它在 JFrame 后面一样。
无论如何检查组件边界或其形状是否对用户完全可见?
java - SwingUtilities.invokeLater:问题
我一直不明白SwingUtilities.invokeLater
,这就是我直到现在一直避免它的原因。但是让 Swing Thread 安全非常重要。好吧,请原谅,因为这是我第一次这样做。我试图在一些数据库查询后关闭窗口。所以,据我所知,任何更新都UI
必须由 .SwingUtilities.invokeLater
这是我的工作:
主要的:
添加按钮上的侦听器
浏览按钮上的侦听器
这是问题,退出代码。
屏幕:
请解释我哪里出错了,我不想使用System.exit
,请原谅我问了太多问题。谢谢。
更新:
这是@trashgod 要求的示例工作代码
请运行并告诉如何修改exit()
以关闭窗口。再次感谢。
java - 鼠标在网格内移动
我创建了一个网格和我的类的双数组gridBalls
。
gridBalls
有一个int
类型,你传递给它一个数字来确定在网格中绘制什么,比如 0 空白,1 球等。
mousedragged
如果我想说单击网格上的插槽 [0][0](假装它是一个球),将我的鼠标向右拖动并绘制一条水平线(在此输入 3),我的代码会是什么样子例如),或者如果我拖动鼠标底部并绘制一条垂直线(类型 2)
java - SwingUtilities.windowForComponent(JFrame) 返回 null
frame
是JFrame
我的 Swing 应用程序中唯一的。由于JFrame
扩展Window
,我从描述和方法名称中相信代码应该返回框架本身。
public static Window windowForComponent(组件aComponent)
返回组件的窗口
但它返回null
,因为实现是这样的
您是否同意方法实现不精确?
UPD:我的意思是 JFrame 被传递给方法windowForComponent
,JFrame
扩展Window
所以应该有额外的检查,比如
UPD2:所以我必须实施
java - SwingUtilities.convertMouseEvent() 在 Java7 中将按钮设置为 NOBUTTON
正如我们所知MouseEvent
,迷失在 中JScrollPane
,即未交付给父母,这是一个尚未修复的旧错误:
https ://forums.oracle.com/forums/thread.jspa?threadID=1362237
因此,我通过使用临时侦听器捕获事件JScrollPane
然后将事件分派给它的父级来使用真正的侦听器进行处理来使用变通方法。
它工作正常,但使用 Java 7 的人开始抱怨鼠标单击在应用程序中没有反应。降级到 Java 6 后问题得到解决,但现在我正在测试Applet
并Chrome
强制我将插件升级到版本 7。
调试后,我发现convertMouseEvent
将按钮设置为MouseEvent.NOBUTTON
与传递的按钮无关
来自 Eclipse 中的源代码
我不知道为什么它是这样实现的?它是另一个错误或功能吗?
似乎我需要创建自己的对象,而无需SwingUtilities.convertMouseEvent
从 sourceEvent 调用和设置按钮。
java - 关闭 JPanel 的父元素
是否可以关闭组件的父元素 .. 可能是来自 JPanel的JFrame
/ ?JInternalFrame
如果是的话怎么做?
java - 为什么在 main 方法中使用 SwingUtilities.invokeLater?
经过多年的 Java 编程,我总是习惯于创建main()
这样的方法:
但最近我从网上研究了一些代码,有时看到这个而不是main()
上面通常的用法:
我只是想知道:
- 为什么要使用这个而不是通常的
main()
方式?当我试一试时,我看不出有什么不同。 - 这两种方式有什么区别?
感谢您阅读我和您的答案。