Java 禁用选择jTextfield的所有突出显示
如何禁用“选择文本的所有突出显示”字段Java 禁用选择jTextfield的所有突出显示,java,swing,Java,Swing,如何禁用“选择文本的所有突出显示”字段 import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import javax.swing.JTextField; public class CustomFocusListener implements FocusListener { JTextField jtextField; public CustomFocusListener(JTextF
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import javax.swing.JTextField;
public class CustomFocusListener implements FocusListener {
JTextField jtextField;
public CustomFocusListener(JTextField jtextField) {
this.jtextField = jtextField;
}
@Override
public void focusGained(FocusEvent e) {
jtextField.selectAll();
}
@Override
public void focusLost(FocusEvent e) {
jtextField.getHighlighter().removeAllHighlights();
}
}
当前代码也只是隐藏了内容。。。
任何有帮助的人?要更改JTextField的文本颜色和选择颜色,可以使用以下两种方法: 但如果您打算使用不同的外观,我不建议您这样做。1)
jtextField.selectAll()代码>
Focus
是简单的异步,那么从逻辑上讲这可能是
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JTextField.selectAll();
}
});
但这种形式对我有效
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JTextField.setText(JTextField.getText());
JTextField.selectAll();
JTextField..requestFocus(); //requestFocusInWindow() I can't see diff
}
});
2) jtextField.getHighlighter().removeAllHighlights()代码>
- 不要玩插入符号,不要玩荧光笔,你也必须覆盖文档
- 插入符号
&选择有什么问题
3) 对于JTextComponent
是否有刚刚设置的Document/DocumentListener
jtextField.setSelectionEnd(0);在方法onFocusLost()中 只需将荧光灯用
设置要使用的荧光灯。默认情况下,这将由UI设置
安装好了。如果需要,可以将其更改为自定义荧光灯
想要的荧光灯可设置为空以禁用它
@NoufalPanolan那么为什么首先调用selectAll()?我一定是误会了什么。当我遍历文本字段时,我想选择“全部聚焦增益”,而“全部聚焦丢失时取消选择”。@NoufalPanolan好的,我现在得到你想要的了;您想重置所选文本。实际上,突出显示和选择是两件不同的事情。从视觉上看,它可能看起来很相似,但实际上一件事是选择文本(这会产生高亮显示),另一件事只是更改文本中一个或多个区域的默认前景色/背景色。这也可以从UIManager+1这里阅读。Java文档中的注释“注意,不鼓励使用此方法,因为其行为依赖于平台。相反,我们建议使用requestFocusInWindow(布尔值)。”
textField.setHighlighter(null);