Вы можете настроить пользовательский компонент для отображения заголовка вкладки с помощью метод JTabbedPane.setTabComponentAt(int index, Component component):
Устанавливает компонент, отвечающий за отрисовку заголовка указанной вкладки. Нулевое значение означает, что 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:
![введите здесь описание изображения](https://i.stack.imgur.com/xVCCE.jpg)
Примечание: с помощью этой функции вы можете установить любые 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:
![введите здесь описание изображения](https://i.stack.imgur.com/y0Gsp.jpg)
Обновлять
Вы также можете просмотреть эту тему: JTabbedPane: размещение вкладок установлено в положение LEFT, но значки не выровнены
person
dic19
schedule
05.11.2013