gpt4 book ai didi

java - 设置自定义边框后如何保留 JComponent 的高亮边框

转载 作者:行者123 更新时间:2023-12-04 14:43:08 25 4
gpt4 key购买 nike

我有一个 JTextField,我在其中设置了一些自定义属性:

nameField.setPreferredSize(new Dimension(275,40));
nameField.setBackground(bgColor);
nameField.setForeground(txtColor);
nameField.setFont(new Font("HelveticaNeue",Font.PLAIN,22));
nameField.setBorder(BorderFactory.createLineBorder(Color.WHITE, 2));

当组件获得焦点时,该字段周围不会显示高亮显示。在 Mac 上,它通常是一个蓝色发光的矩形,表示该组件具有焦点。

如果我注释掉 nameField.setBorder(...),突出显示会重新出现。如何保留突出显示以及我的自定义边框!?

基本上,我只想在组件获得焦点时显示高亮边框,而在组件未获得焦点时不显示边框。

请注意,原始边框的类型为 com.apple.laf.AquaTextFieldBorder

最佳答案

Basically, I just want the highlight-border to show when the component has focus, and no border when the component is unfocused.

您需要使用 FocusListener。首先你需要保存当前的边框。然后在 focusLost 上将 Border 设置为 null,在 focusGained 上使用保存的 Border。

或者您可以使用 UIManager 获取组件的默认边框。

关于java - 设置自定义边框后如何保留 JComponent 的高亮边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2992312/

25 4 0