Swing JTextField如何删除边框?

2022-09-01 16:21:10

是否无论如何都要删除边框?JTextField

txt = new JTextField();
txt.setBorder(null);   // <-- this has no effect.

我真的希望它看起来像一个 - 但我仍然需要它是一个,因为我希望人们能够突出它。JLabelJTextField


答案 1
JTextField textField = new JTextField();
textField.setBorder(javax.swing.BorderFactory.createEmptyBorder());

http://java.sun.com/javase/6/docs/api/javax/swing/BorderFactory.html

将边框设置为“null”时,您实际上是在告诉外观和使用本机边框样式(操作系统)(如果有的话)。


答案 2

从您上一个问题的答案中,您知道一些PL&F可能会破坏边界。

因此,显而易见的解决方案是覆盖PL&F正在调用的方法,并放弃更改。setBorder

JTextField text = new JTextField() {
    @Override public void setBorder(Border border) {
        // No!
    }
};

推荐