Можете да зададете персонализиран компонент за изобразяване на заглавието на раздела чрез JTabbedPane.setTabComponentAt(int index, компонент компонент) метод:
Задава компонента, който отговаря за изобразяването на заглавието за посочения раздел. Нулева стойност означава, че JTabbedPane
ще изобрази заглавието и/или иконата за посочения раздел. Ненулева стойност означава, че компонентът ще изобрази заглавието и JTabbedPane
няма да изобрази заглавието и/или иконата.
Забележка: Компонентът не трябва да е такъв, който разработчикът вече е добавил към панела с раздели.
Например можете да направите това:
JLabel label = new JLabel("Tab1");
label.setHorizontalTextPosition(JLabel.TRAILING); // Set the text position regarding its icon
label.setIcon(UIManager.getIcon("OptionPane.informationIcon"));
JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.LEFT);
tabbedPane.addTab(null, new JPanel());
tabbedPane.setTabComponentAt(0, label); // Here set the custom tab component
Екранна снимка 1:
Забележка: като използвате тази функция, можете да зададете всеки Component
по ваше желание. Например можете да направите JPanel
с JButton
, за да затворите раздела:
final JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.LEFT);
ActionListener actionListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JButton button = (JButton)e.getSource();
for(int i = 0; i < tabbedPane.getTabCount(); i++) {
if(SwingUtilities.isDescendingFrom(button, tabbedPane.getTabComponentAt(i))) {
tabbedPane.remove(i);
break;
}
}
}
};
JLabel label = new JLabel("Tab1", UIManager.getIcon("OptionPane.informationIcon"), JLabel.RIGHT);
JButton closeButton = new JButton("X");
closeButton.addActionListener(actionListener);
JPanel tabComponent = new JPanel(new BorderLayout());
tabComponent.add(label, BorderLayout.WEST);
tabComponent.add(closeButton, BorderLayout.EAST);
tabbedPane.addTab(null, new JPanel());
tabbedPane.setTabComponentAt(0, tabComponent); // Here set the custom tab component
Екранна снимка 2:
Актуализация
Може да искате да видите и тази тема: JTabbedPane: разположението на разделите е зададено на ЛЯВО, но иконите не са подравнени
person
dic19
schedule
05.11.2013