![]() |
1
2
最大的问题是,我还没有找到一种“好”的方法来获取所有标准构造函数而不编写重写。添加它们并强制调用addListener是我发现的最常用的方法。 另一个选项是在具有ContainerLister的顶级容器上监视ContainerEvents,以检测是否存在新的小部件,并根据已添加的小部件添加相应的焦点侦听器。(例如:如果容器事件是由添加TextField引起的,那么添加一个焦点侦听器,该侦听器知道如何选择TextField中的所有文本,依此类推。)如果添加了容器,那么还需要递归地将ContainerListener添加到新的子容器中。 无论哪种方式,您都不需要在实际的UI代码中使用焦点侦听器——这一切都将在更高的级别上处理。 |
![]() |
2
2
我自己也没有尝试过(只是在不久前才涉猎过),但您可能可以使用以下方法获得当前的焦点组件: 向其添加PropertyChangeListener的过程。 从那里,您可以确定该组件是否为JTextComponent,并选择all text。 |
![]() |
3
2
可以编写将FocusListener附加到所需文本字段的单独类。焦点侦听器只需在文本小部件获得焦点时调用selectAll()。
通过接受JTextComponent作为参数,可以将此行为直接添加到JTextArea、JPasswordField和所有其他文本编辑组件中。这还允许类将全选添加到可编辑的组合框和jspinner中,您对文本编辑器组件的控制可能会受到更大的限制。可以添加方便的方法:
此外,可能不需要remove-listener方法,因为侦听器不包含对任何其他实例的外部引用,但是可以添加它们以使代码审查更加顺利。 |
![]() |
4
1
在阅读到目前为止的回复后(谢谢!),我将最外层的JPanel传递给以下方法:
它起作用了! |
![]() |
5
0
|
![]() |
Jörg · 如何更改多行JButton中的行距 7 月前 |
![]() |
Clive Galway · 将摆动元件包装在面板顶部 1 年前 |
![]() |
AlexHomeBrew · 如何将图像放在左上角的滚动窗格中 1 年前 |
![]() |
Vithor Roder · Java CellEditor 1 年前 |
![]() |
Dromlius · JPanel透支重叠的JComcoBox 1 年前 |