在许多应用程序(例如 Google Chrome)中,标签页的标题右侧有一个“x”,单击时会关闭标签页。我打算在我的 Swing 应用程序中做类似的事情。我找到了这个主题并尝试遵循建议。然而,该方法似乎在选项卡内放置了一个按钮,而不是在其标题上。这是我的代码:
private void addCloseBtn(String title){
JPanel btnPane = new JPanel(new GridBagLayout());
btnPane.setOpaque(false);
btnPane.setSize(new Dimension(15, 15));
JButton btn = new JButton("X");
btn.setPreferredSize(new Dimension(12, 12));
btn.setMargin(new Insets(0, 0, 0, 0));
btn.setFont(new Font("Dialog", 1, 9));
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.weightx = 1;
btnPane.add(btn, gbc);
contentTabs.setComponentAt(contentTabs.indexOfTab(title), btn);
}
contentTabs
是我框架的私有类域。
btnPane
覆盖整个标签,这是没用的。我该怎么做才能将它放在选项卡的标题上或至少放在选项卡的右上角?最后为什么btn.setSize()
方法不起作用并且起作用btn.setPreferredSize()
?
提前致谢。