InternalFrame Aparência

Bom dia,

Gostaria de saber se é possível mudar a aparência de um InternalFrame, Tenho uma Janela Principal onde tem os Menus Cliente, etc, etc, ai abre um InternalFrame naquela aparência não muito elegante é possível deixar uma InternalFrame como um JFrame de maneira que ele fique dentro da tela principal sem sair para fora a aplicação. Alguém poderia deixar um exemplo. Obrigado.

Exemplo:

-Classe TP:

public class TP extends javax.swing.JFrame {
    
    Internal internal = new Internal();
    
    public TP(){
        init();
    }
    
    private void init(){
        painel = new javax.swing.JPanel();
        btn = new javax.swing.JButton("Abrir");
        desktop = new javax.swing.JDesktopPane();
        
        painel.setLayout(null);
        
        btn.setBounds(270, 15, 120, 20);
        btn.setFont(new java.awt.Font("Tahona", 3, 14));
        btn.addActionListener(new java.awt.event.ActionListener() {
            @Override
            public void actionPerformed(java.awt.event.ActionEvent e) {
                desktop.add(internal);
                internal.setVisible(true);
            }
        });
        painel.add(btn);
        
        desktop.setBounds(10, 40, 575, 420);
        desktop.setBackground(java.awt.Color.BLACK);
        painel.add(desktop);
        
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        setSize(600, 500);
        setResizable(false);
        setTitle("Exemplo");
        add(painel);
        setLocationRelativeTo(null);
    }
    
    public static void main(String[] args){
        try {
            //Aqui muda a aparência
            javax.swing.UIManager.setLookAndFeel(javax.swing.UIManager.getSystemLookAndFeelClassName());
        } catch (Exception e) {
            System.out.println(e);
        }
        new TP().setVisible(true);
    }
    
    private javax.swing.JPanel painel;
    private javax.swing.JButton btn;
    private javax.swing.JDesktopPane desktop;
}

-Classe Internal:

public class Internal extends javax.swing.JInternalFrame {
    
    public Internal(){
        init();
    }
    
    private void init(){
        painel = new javax.swing.JPanel();
        lbl = new javax.swing.JLabel("Eis aqui!");
        
        painel.setLayout(null);
        
        lbl.setFont(new java.awt.Font("Tahona", 3, 30));
        lbl.setBounds(100, 100, 170, 45);
        painel.add(lbl);
        
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        setSize(575, 420);
        add(painel);
    }
    
    private javax.swing.JPanel painel;
    private javax.swing.JLabel lbl;
}

Usa um Look And Feel no teu sistema inteiro. Lá na Main, coloca o Look And Feel
Digamos que teu JFrame tá na classe Principal

public static void main(String[]args) {
try {
     UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
     Principal principal = new Principal() ;
     principal.seuMetodoParaCriarTela();
 
} catch(Exception e) {
     // caso dê erro ele inicia do mesmo jeito
     Principal principal = new Principal() ;
     principal.seuMetodoParaCriarTela();
   }
}

Ou usa o LookAndFeel do sistema mesmo

public static void main(String[]args) {
try {
     UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
     Principal principal = new Principal() ;
     principal.seuMetodoParaCriarTela();
 
} catch(Exception e) {
     // caso dê erro ele inicia do mesmo jeito
     Principal principal = new Principal() ;
     principal.seuMetodoParaCriarTela();
   }
}

se quiser deixar bonitão mesmo seu sistema… da uma olhadinha nessas look and feel…

http://www.javasoft.de/synthetica/themes/

http://weblookandfeel.com/

POOOOOOOO
Até eu vou baixar uns agora :sunglasses:

Obrigado a todos pelas respostas. É possível usar Jtabbedpane em JFrame tipo, ao tenho lá meu menu Cliente quando clicado ele abre essa, fornecedor abre outra guia, tudo isso dentro do Janela Principal que é JFrame com JMenuBar. :slight_smile: