我扩展了JButton以满足我的需求。我的新类里面有一个JTextArea和两个JLabel组件。问题是,我无法点击JTextArea。因此,当鼠标位于JTextArea边界时,该按钮没有响应。标签没有问题。
在屏幕上。有四个按钮。每个都是一个单独的黄色矩形。当鼠标在JTextArea的灰色矩形上时,我无法按下按钮。我需要JTextArea,因为它支持多行。有没有选项让它不拦截鼠标?
如果我可以将ActionListener附加到JTextArea就可以,但我不能。它不能有这种倾听者。
答案 0 :(得分:2)
你看起来试图以一种非按钮的方式使用JButton,包括让它拥有一个JTextArea,而不是像按钮一样。如果您想要一个不可识别的JButton可点击区域,请考虑使用MouseListener。您可能需要将相同的MouseListener添加到容器JPanel和JTextArea。
答案 1 :(得分:2)
查看Concepts: Editors and Renderers以了解渲染器和编辑器之间的区别。
渲染器是一个"橡皮图章"该组件,它只是"画"在JTable
的表面上,并不是现实生活中的组成部分
您需要实现一个自定义编辑器,它可以将触发事件(在您的情况下为MouseEvent
)转换为本地上下文。
看一下TableCellEditor#isCellEdtiable
,它可能是您可能触发细胞变得可编辑的事件来源的最接近的地方。
JButton
可以使用HTML
String
播种(`"这是一些文字"),它可以支持多行和换行井
说了这么多,你可能想要认真重新考虑你的设计......