Quiero personalizar el aspecto de las pestañas en JTabbedPane.
Quiero comenzar desde el comportamiento más simple y sencillo: sin bordes, color sólido.
El problema es que aún no se muestra una apariencia: las pestañas se superponen ligeramente.
JTabbedPane personalizar pestaña buscar
ves que ya se ha seleccionado la segunda pestaña, se "puso en primer plano". Esto se logra mediante una ligera superposición de margen. ¿Existe alguna forma (no engañosa) de deshabilitar este comportamiento?
sencilla, comprobable (basta con corregir las importaciones) Código:
public class TabbedPane_LookStudy extends JFrame{
public static void main(String [] args) throws UnsupportedLookAndFeelException {
UIManager.setLookAndFeel(new NimbusLookAndFeel());
new TabbedPane_LookStudy().setVisible(true);
}
public TabbedPane_LookStudy() {
JTabbedPane tp = new JTabbedPane();
tp.setUI(new MyTabbedPaneUI());
add(tp);
tp.addTab("first",new JPanel());
tp.addTab("second", new JPanel());
tp.addTab("third", new JPanel());
setPreferredSize(new Dimension(180,100));
pack();
}
public static class MyTabbedPaneUI extends javax.swing.plaf.basic.BasicTabbedPaneUI {
@Override
protected void paintTab(Graphics g, int tabPlacement, Rectangle[] rects,
int tabIndex, Rectangle iconRect, Rectangle textRect) {
Color savedColor = g.getColor();
g.setColor(Color.PINK);
g.fillRect(rects[tabIndex].x, rects[tabIndex].y,
rects[tabIndex].width, rects[tabIndex].height);
g.setColor(Color.BLUE);
g.drawRect(rects[tabIndex].x, rects[tabIndex].y,
rects[tabIndex].width, rects[tabIndex].height);
g.setColor(savedColor);
}
}
}
+1 imagen, sscce, cuestionar – mKorbel