1
我正在使用Swing在Java上使用UI,我想更改JTabbedPane的滚动按钮,因此我使用从延伸MetalTabbedPaneUI创建的新UI(MyTabbedPaneUI)。修改JTabbedPan的滚动按钮
但是,当我创建我的JTabbedPanel有2个选项卡出现,我不希望他们。如果我删除它们,我的滚动条消失。
代码:
public class MyTabbedPaneUI extends MetalTabbedPaneUI{
private Icon southIcon = new ImageIcon(MyTabbedPaneUI.class.getResource("south.png"));
private Icon northIcon = new ImageIcon(MyTabbedPaneUI.class.getResource("north.png"));
private Icon eastIcon = new ImageIcon(MyTabbedPaneUI.class.getResource("flecheVerte-gauche-20px.png"));
private Icon westIcon = new ImageIcon(MyTabbedPaneUI.class.getResource("flecheVerte-droite-20px.png"));
public static ComponentUI createUI(JComponent x) {
return new MyTabbedPaneUI();
}
@Override
protected JButton createScrollButton(int direction) {
if ((direction != SOUTH) && (direction != NORTH) && (direction != EAST) && (direction != WEST)) {
throw new IllegalArgumentException("Direction must be one of: " + "SOUTH, NORTH, EAST or WEST");
}
JButton b = new JButton();
//b.setText("");
b.setPreferredSize(new Dimension(eastIcon.getIconWidth(), eastIcon.getIconHeight()));
if (direction == SOUTH) {
b.setIcon(southIcon);
} else if (direction == NORTH) {
b.setIcon(northIcon);
} else if (direction == WEST) {
b.setIcon(westIcon);
} else {
b.setIcon(eastIcon);
}
return b;
}
}
是的,我想改变与画面这两个按钮,我创建 – Fred37b 2012-03-14 16:27:46
在'BasicTabbedPaneUI'中,参见'private class ScrollableTabButton extends BasicArrow按钮'为一个简单的实现。 – trashgod 2012-03-14 16:45:39
@Fred B对不起,我没有任何运气替换这四个AbstractButtons其图标,你已经找到(我失去了链接)完全定制的BasicTabbedPaneUI,这些AbstractButtons必须接受preferredSize,真正的成功是使用Custom Look and Feel,一些他们完全覆盖BasicTabbedPaneUI – mKorbel 2012-03-14 17:05:33