自定义JButton里面有JTextArea组件

时间:2014-09-08 01:39:24

标签: java swing click jbutton jtextarea

我扩展了JButton以满足我的需求。我的新类里面有一个JTextArea和两个JLabel组件。问题是,我无法点击JTextArea。因此,当鼠标位于JTextArea边界时,该按钮没有响应。标签没有问题。

在屏幕上。有四个按钮。每个都是一个单独的黄色矩形。当鼠标在JTextArea的灰色矩形上时,我无法按下按钮。我需要JTextArea,因为它支持多行。有没有选项让它不拦截鼠标?

如果我可以将ActionListener附加到JTextArea就可以,但我不能。它不能有这种倾听者。

enter image description here

2 个答案:

答案 0 :(得分:2)

你看起来试图以一种非按钮的方式使用JButton,包括让它拥有一个JTextArea,而不是像按钮一样。如果您想要一个不可识别的JButton可点击区域,请考虑使用MouseListener。您可能需要将相同的MouseListener添加到容器JPanel和JTextArea。

答案 1 :(得分:2)

查看Concepts: Editors and Renderers以了解渲染器和编辑器之间的区别。

渲染器是一个"橡皮图章"该组件,它只是"画"在JTable的表面上,并不是现实生活中的组成部分

您需要实现一个自定义编辑器,它可以将触发事件(在您的情况下为MouseEvent)转换为本地上下文。

看一下TableCellEditor#isCellEdtiable,它可能是您可能触发细胞变得可编辑的事件来源的最接近的地方。

JButton可以使用HTML String播种(`"这是一些文字"),它可以支持多行和换行井

说了这么多,你可能想要认真重新考虑你的设计......

相关问题