Witajcie, jak usunąć, przekolorować lub też uczynić przezroczystą tą ramkę od JTabbedPane widoczną na screenie:
od razu mówię, że ustawienie empty bordera nie działa, setOpaque(false) również, ani zwykłe setBackground i setForeground.
Trochę to szpeci mój design programu, więc proszę o pomoc.
Dzięki.
0
1
Trochę googlania oraz wkładu własnego doprowadziło mnie do takich rezultatów...
import java.awt.Color;
import javax.swing.*;
import javax.swing.plaf.basic.BasicTabbedPaneUI;
public class PaneTest {
public static final Color TRANSPARENT = new Color(0, 0, 0, 0);
public static void main(String[] args)
{
// globalnie dla uimanagera
UIManager.put("TabbedPane.background", TRANSPARENT);
UIManager.put("TabbedPane.selected", TRANSPARENT);
UIManager.put("TabbedPane.background", TRANSPARENT);
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 400);
frame.setLocationRelativeTo(null);
frame.setLayout(null);
JTabbedPane pane = new JTabbedPane();
pane.setBounds(10, 10, 200, 200);
// custom ui
pane.setUI(new BasicTabbedPaneUI() {
@Override
protected void installDefaults()
{
super.installDefaults();
highlight = TRANSPARENT;
lightHighlight = TRANSPARENT;
shadow = TRANSPARENT;
darkShadow = TRANSPARENT;
focus = TRANSPARENT;
contentBorderInsets.top = 0;
contentBorderInsets.left = 0;
contentBorderInsets.right = 0;
contentBorderInsets.bottom = 0;
}
});
pane.setBackground(TRANSPARENT);
pane.setOpaque(false);
pane.addTab("foo", new JPanel());
pane.addTab("bar", new JPanel());
frame.add(pane);
frame.setVisible(true);
}
}
JTabbedPane nie jest widoczny w ogóle, jedynie tytuły zakładek widać...
trochę to pozmieniasz, to będziesz miał z tego użytek