Я пытаюсь создать JTabbedPane
в Java Swing. Требование заключается в том, что вкладки должны быть в центре и не должно быть никаких границ.
Изображение 1
| ---------------------------- [Tab1] [Tab2] -------------------------- |
Выше приведено ожидание представления, которое я хочу на странице. Но я попробовал несколько способов, с помощью которых мне удалось вывести вкладки в центр, но все же я не смог удалить границы безымянных вкладок.
Изображение 2
| ------- | ------- | -------- | ------ [Tab1] [Таб2] ------- | ---------| ---------- |
Выше приведено мнение, которое я имею сейчас. Я хочу удалить видимые границы (Границы | ------ | означает вкладку без имени)
Как создать только необходимое количество вкладок в центре окна / страницы ....?
В соответствии с моим требованием я могу создать максимум 6 вкладок на странице, но в этом сценарии я хочу, чтобы только две вкладки были видны / активны в центре страницы, как на рисунке 1.
Я пытался таким образом, что я создал 6 вкладок без какого-либо имени вкладки, затем назвал и сделал 4-й и 5-й в качестве активных вкладок, чтобы он чувствовал себя как центр, это работает отлично. Но границы вкладок до и после этих двух вкладок видны, как на рисунке 2.
Пожалуйста, найдите мою попытку скрыть границу ниже. Я не уверен, возможно ли скрытие границ .......?
Если возможно, приведенный ниже код не работает. Пожалуйста, поделитесь некоторыми мыслями, чтобы это сработало.
UIManager.put("TabbedPane.selected", Color.decode("#3391C7"));
UIManager.put("TabbedPane.borderHightlightColor", new ColorUIResource( Color.decode("#FFFFFF") ));
UIManager.put("TabbedPane.darkShadow", new ColorUIResource( Color.decode("#FFFFFF") ));
//Remove borders
UIManager.put("TabbedPane.contentBorderInsets", new Insets(0, 0, 0, 0));
tabbedPane = new JTabbedPane()
{
public Color getBackgroundAt(int index){
return Color.decode("#FFFFFF");
}
public Color getForegroundAt(int index) {
if (getSelectedIndex() == index) {
return Color.decode("#FFFFFF");
}
return Color.decode("#151B28");
}
};
tabbedPane.setPreferredSize(new Dimension(1830, 880));
tabbedPane.setUI(new BasicTabbedPaneUI() {
@Override
protected int calculateTabHeight(
int tabPlacement, int tabIndex, int fontHeight) {
return 48; // the width of the tab
}
@Override
protected int calculateTabWidth(
int tabPlacement, int tabIndex, FontMetrics metrics) {
return 264;// the width of the tab
}
});
Font myFont1 = new Font(LayoutConstant.FONT_HELVETICA_NEUE, Font.PLAIN, 18);
//Below is the implementation of the six tabs. Tabs other than center are left
//unnamed to make the two active tabs look like center
tabbedPane.setFont(myFont1);
tabbedPane.addTab("", null);
tabbedPane.setEnabledAt(0, false);
tabbedPane.addTab("", null);
tabbedPane.setEnabledAt(1, false);
tabbedPane.addTab("", null);
tabbedPane.setEnabledAt(2, false);
JComponent panel1 = localStorage.makeTextPanel("Tab1");
tabbedPane.addTab("Tab1", panel1);
tabbedPane.setMnemonicAt(3, KeyEvent.VK_3);
JComponent panel2 = externalStorage.makeTextPanel("Tab2");
tabbedPane.addTab("Tab2", panel2);
tabbedPane.setMnemonicAt(4, KeyEvent.VK_4);
tabbedPane.addTab("", null);
tabbedPane.setEnabledAt(5, false);