我想删除尴尬的蓝色边框,我无法通过执行
myTabbedPane.setBorder(null);
删除它。有什么方法可以做到这一点?
这就是我说的蓝色边框:
由于我是 swing java 库的新手,我也想知道如果没有方法/它不起作用,如何更改组件的所有属性。我听说有一个叫做 UIManager 的东西,但我找不到有关它的有用信息。
我唯一尝试的就是调用 setBorder 属性并对其调用 null。
这些属性由您使用的外观和感觉定义(例如 Windows L&F 或 Metal L&F)。
您可以全局更改这些属性(即这适用于您正在使用的所有 JTabbedPanes)。以下代码适用于 Windows L&F 和 Motiv L&F(您需要检查其他 L&F 实现):
import javax.swing.SwingUtilities;
import javax.swing.JFrame;
import javax.swing.JTabbedPane;
import javax.swing.JPanel;
import javax.swing.UIManager;
import java.awt.BorderLayout;
import java.awt.Insets;
public class Main extends JFrame {
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> new Main());
}
public Main() {
this.setLayout(new BorderLayout());
JTabbedPane pane = new JTabbedPane();
pane.addTab("A", new JPanel());
pane.addTab("B", new JPanel());
pane.addTab("C", new JPanel());
// Remove the white line under a tab button
Insets insets = UIManager.getInsets("TabbedPane.contentBorderInsets");
insets.top = -1;
insets.bottom = -1;
insets.left = -1;
insets.right = -1;
UIManager.put("TabbedPane.contentBorderInsets", insets);
this.add(pane, BorderLayout.CENTER);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(800, 600);
this.setVisible(true);
}
}