[Resolvido] icone em JTabbedPane em java

boa noite pessoal…

é o seguinte, eu quero colocar uma imagem em uma determinada aba, eu usei o codigo:

porem, ele adiciona a imagem no final da aba, e eu gostaria de colocar a imagem no começo da aba

há alguma forma de fazer isto ?

PS: estou usando NetBeans

1 curtida

eu acho que isso depende do LookAndFeel

faca o teste, descomenta as linhas 4 ou 5, no nimbus o icone fica no final, já no metal e windows fica no inicio…

public static void main(String[] args) throws Exception {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if (info.getName().toLowerCase().contains("windows")) {
//              if (info.getName().toLowerCase().contains("metal")) {
//                if (info.getName().toLowerCase().contains("nimbus")) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }

        JFrame frame = new JFrame();
        frame.setSize(200, 200);
        frame.getContentPane().setLayout(new BorderLayout());

        JTabbedPane tabbed = new JTabbedPane();
        tabbed.add("Teste", new JPanel());
        frame.getContentPane().add(tabbed, BorderLayout.CENTER);
        InputStream input = TesteTabbed.class.getClassLoader().getResourceAsStream("testeswing/iconeSistema.png");

        BufferedImage image = ImageIO.read(input);
        tabbed.setIconAt(0, new ImageIcon(image));

        frame.setVisible(true);

}
1 curtida

hmm… verdade, com o LookAndFeel do windows funcionou na frente…

mas nao tem uma forma de deixar a imagem no inicio usando o LookAndFeel do nimbus ?

// Create tabbed pane and add tabs.
JTabbedPane tabbedPane = ...

// Create bespoke component for rendering the tab.
JLabel lbl = new JLabel("Hello, World");
Icon icon = new ImageIcon(getClass().getResource("/foo/bar/hello.jpg"));
lbl.setIcon(icon);

// Add some spacing between text and icon, and position text to the RHS.
lbl.setIconTextGap(5);
lbl.setHorizontalTextPosition(SwingConstants.RIGHT);

// Assign bespoke tab component for first tab.
tabbedPane.setTabComponentAt(0, lbl);

copiei de http://stackoverflow.com/questions/1782224/jtabbedpane-icon-on-left-side-of-tabs

abraços

1 curtida

funcionou perfeitamente para o que eu precisava, muito obrigado lucasirc