[英]Change tab look for JTabbedpane
如何删除或更改这些标签周围边框的颜色?
另外,当鼠标悬停在选项卡上时,选项卡文本是否可以更改颜色?
当鼠标悬停在其上时,选项卡文本是否可以更改颜色?
如本答案所述,您可以通过JTabbedPane.setTabComponentAt(int index,Component component)方法设置一个自定义组件来呈现选项卡标题。 因此,您可以执行以下操作:
final JTabbedPane tabbedPane = new JTabbedPane();
MouseListener mouseListener = new MouseAdapter() {
Color defaultColor;
@Override
public void mouseEntered(MouseEvent e) {
JLabel label = (JLabel)e.getSource();
defaultColor = label.getForeground();
label.setForeground(Color.BLUE);
}
@Override
public void mouseExited(MouseEvent e) {
JLabel label = (JLabel)e.getSource();
label.setForeground(defaultColor);
}
@Override
public void mouseClicked(MouseEvent e) {
JLabel label = (JLabel)e.getSource();
Point point = SwingUtilities.convertPoint(label, e.getPoint(), tabbedPane);
int selectedTab = tabbedPane.getUI().tabForCoordinate(tabbedPane, point.x, point.y);
switch(e.getButton()){
case MouseEvent.BUTTON2: tabbedPane.removeTabAt(selectedTab); break;
default: tabbedPane.setSelectedIndex(selectedTab);
}
}
};
JLabel tab1 = new JLabel("Tab1");
tab1.addMouseListener(mouseListener);
tabbedPane.addTab(null, new JPanel());
tabbedPane.setTabComponentAt(0, tab1);
如何删除或更改这些标签周围边框的颜色?
在这种情况下,外观由边框决定。 您应该查看L&F的默认属性,看看是否允许更改此颜色。 例如,您可以执行以下代码来查看L&F的默认属性(当然是在设置L&F之后):
for(Object key : UIManager.getLookAndFeelDefaults().keySet()){
System.out.println(key + " = " + UIManager.get(key));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.