Java Swing : Is it possible to make a component visible by user but transparent to mouse clicks?

标签 java swing jtextarea resizable

我有一个编辑器项目,在编辑器面板中我有一些用户可调整大小和可移动的面板。我通过一个单独的类 Resizable.java 定义了这些面板,它扩展了 JComponent。我正在使用 MouseInputListener,因此当用户单击 可调整大小 时,他可以移动它或调整其大小。当我将 jPanel 放入其中时,我仍然可以设法移动/调整它的大小。另一方面,如果我将 JTextArea 放入 Ressized 中,我将无法再进行操作,因为 JTextArea 会阻止我在 Ressized 上单击鼠标。我的意图是用户只有双击 JTextArea 才能编辑它,否则他应该移动/调整面板大小。 (如adobe flash/photoshop/fireworks中的文本工具)

我尝试为 JTextArea setFocusable(false) 但没有成功。

有人知道如何做到这一点吗?或者更好的实现?

抱歉我的英语不好,我希望我说清楚了。

谢谢。

最佳答案

您可以使用玻璃 Pane 来捕获鼠标事件。 Swing 教程有一个很好的示例,其中包含玻璃 Pane 和鼠标事件:

http://docs.oracle.com/javase/tutorial/uiswing/components/rootpane.html

另一种选择是将JTextArea 放入JDesktop 上的JInternalFrame 中。这将允许用户移动它并调整其大小,而不必干扰鼠标事件。 UI 也会更加直观。

关于Java Swing : Is it possible to make a component visible by user but transparent to mouse clicks?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20194247/

相关文章:

java - 自定义微调器适配器不工作

java - 为什么 Firefox 会在 20 秒后终止我的小程序?

java - 在java中启动我的迷你项目数据包跟踪器时遇到困难

java - 是否无法动态地将文本添加到单个 JTextArea 中?

java - 同一类型的 Swing 事件是否有保证优先级?

java - JProgressbar 应该如何工作?

java - 尝试弹出窗口时出现编译器错误

Java - 复选框监听器

java - 如何从不包含 JTextArea 的方法附加 JTextArea?

java - JTextArea 中的控制台输出和用户输入