Mudando a Interface

3 respostas
rodrigo.achilles

Olá pessoal,
Gostaria de saber como faço para mudar a minha interface, tipo COR, Formato, tudo, tipo o windows, quando mudo a APARÊNCIA.
E outra coisa, não sei se tem haver uma coisa com a outra, mais o que significa o UI, como por exemplo: BasicPanelUI, IconUIResource, entre outros…

Obrigado pela ajuda…

Abraços :?

3 Respostas

Ironlynx
Rodrigo, UI é de UserInterface... como eu tenho costume de usar L&F´s dinâmicos nas minhas aplicações,toma um exemplo meu da antiga aí(é um Menu principal de aplicação):
/******Programa de Cadastro de DVD´s*****Menu Principal Da Aplicação*************************
 ********************************************************************************************
 *@version 0.3beta 6/03/2004****************************************************************
 ********************************************************************************************
 *@author Ironlynx **************************************************************************
 ********************************************************************************************
 *Copyright(c) 2004 Ironlynx Solutions, Inc All  Rights Reserved.****************************   
 *******************************************************************************************/
//package clipstudiodvds;
  
import java.awt.*;
import java.awt.event.*;
import java.awt.Dimension; 
import java.awt.Graphics; 
import java.awt.Graphics2D; 
import java.awt.Image;
import java.awt.Toolkit;

import javax.swing.*;
import javax.swing.event.*;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JMenuBar;
import javax.swing.KeyStroke;

import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import javax.swing.JFrame;

import javax.swing.UIManager.*;
import javax.swing.LookAndFeel;
import javax.swing.UnsupportedLookAndFeelException;

import javax.swing.plaf.metal.DefaultMetalTheme;
import javax.swing.plaf.metal.MetalLookAndFeel;

import com.l2fprod.gui.plaf.skin.*;//importará o Skin L&F
import com.l2fprod.gui.plaf.skin.SkinLookAndFeel;



public class Principal implements ActionListener, ItemListener,
   MouseListener {
   	
   private JFrame frame = null;
   private JWindow splashScreen = null;
   private JTextArea saida;
   private JScrollPane scroll;
   private JDesktopPane desktop;
   
   private Cadastro cadastro;//variável do tipo cadastro que será usada para
                             //criar a JInternalFrame de cadastro de dvd´s
   private Consulta consulta;//variável que será usada para referenciar a tela de consulta
                             //que será criada                             
                             
   //itens(variáveis de instância) da Barra de Menus
   private JMenuBar menuBar;
   private JMenu menu,menu2,menu3,menu4,menu5,menu6;   
   private JMenuItem[] menuItem=new JMenuItem[8];
   private JMenuItem[] menuItem2=new JMenuItem[5];
   private JMenuItem[] menuItem3=new JMenuItem[5];
   private JMenuItem[] menuItem4=new JMenuItem[2];
   private JMenuItem[] menuItem5=new JMenuItem[2];
  
   public JRadioButtonMenuItem[] rbMenuItem=new JRadioButtonMenuItem[5];
   
   // Aparências(aspectos de Tela) possíveis-são protected pq precisam ser passadas a 
   //JInternalFrame de Cadastro para atualizar a aparência!   
    protected static final String mac      =
            "com.birosoft.liquid.LiquidLookAndFeel";
    protected static final String metal    =
            "javax.swing.plaf.metal.MetalLookAndFeel";
    protected static final String skin    =
             "com.l2fprod.gui.plaf.skin.SkinLookAndFeel"; 
    protected static final String windows  =
              "de.muntjak.tinylookandfeel.TinyLookAndFeel";  
    protected static final String kunststoff = 
            "com.incors.plaf.kunststoff.KunststoffLookAndFeel";         
            
    // Aspecto da tela corrente
    protected static String lookAndFeelAtual = metal;   
    
         	
   public Principal(){
   	exibeTela();
   }//construtor
   
   /*
    *@method criaMenu()-método responsável pela criação da Barra de Menus dos menus e submenus
    */   
   public JMenuBar criaMenu(){
   	                 

        //Cria a barra de menu.
        menuBar = new JMenuBar();
        
         //Constrói o primeiro menu
        menu = new JMenu("Arquivo");//cabeçalho do primeiro menu
        menu.addActionListener(this);
    //    menu.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
        menu.setMnemonic(KeyEvent.VK_A);
        menu.getAccessibleContext().setAccessibleDescription(
                "Dados De Arquivo");
        menuBar.add(menu);//adiciona o primeiro menu a barra de menus
        
        //um grupo de JMenuItems
        menuItem[0] = new JMenuItem("Novo Arquivo",KeyEvent.VK_T);
        //menuItem.setMnemonic(KeyEvent.VK_T); //used constructor instead
        menuItem[0].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1, ActionEvent.ALT_MASK));
        menuItem[0].getAccessibleContext().setAccessibleDescription(
                "Abre um item de arquivo");
        menu.add(menuItem[0]);
        
        //segunda linha do primeiro menu
        menuItem[1] = new JMenuItem("Abrir Arquivo");
        menuItem[1].setMnemonic(KeyEvent.VK_B);
        menu.add(menuItem[1]);
        
        //terceira linha do primeiro menu
        menuItem[2] = new JMenuItem("Salvar Arquivo");
        menuItem[2].setMnemonic(KeyEvent.VK_C);
        menu.add(menuItem[2]);
        menu.addSeparator();//cria uma linha de separação entre a 3ª e 4ª linha do menu
        //quarta linha do primeiro menu
        menuItem[3] = new JMenuItem("Novo Cadastro");
        menuItem[3].setMnemonic(KeyEvent.VK_D);
        menu.add(menuItem[3]);
        
         //quinta linha do primeiro menu
        menuItem[4] = new JMenuItem("Abrir Cadastro");
        menuItem[4].setMnemonic(KeyEvent.VK_E);
        menu.add(menuItem[4]);
       
        //sexta linha do primeiro menu
        menuItem[5] = new JMenuItem("Deletar Cadastro");
        menuItem[5].setMnemonic(KeyEvent.VK_F);
        menu.add(menuItem[5]);
          
        //sétima linha do primeiro menu
        menuItem[6] = new JMenuItem("Selecionar Cadastro");
        menuItem[6].setMnemonic(KeyEvent.VK_G);
        menu.add(menuItem[6]);
        
        //oitava linha linha do primeiro menu "Arquivo"
        menuItem[7] = new JMenuItem("Sair");
        menuItem[7].setMnemonic(KeyEvent.VK_H);
        menu.add(menuItem[7]);
        
        //criar submenus
        
        //novo menu chamado "Editar"        
        menu2=new JMenu("Editar");
        menu2.setMnemonic(KeyEvent.VK_N);
        menu2.getAccessibleContext().setAccessibleDescription("Menu de edição de itens");
        menuBar.add(menu2);
          
        //primeira linha do segundo menu "Editar"
        menuItem2[0] = new JMenuItem("Cadastro");
        menuItem2[0].setMnemonic(KeyEvent.VK_M);
        menuItem2[0].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_2, ActionEvent.ALT_MASK));
        menu2.add(menuItem2[0]);  
        
        //segunda linha do segundo menu "Editar"
        menuItem2[1] = new JMenuItem("Filme");
        menuItem2[1].setMnemonic(KeyEvent.VK_O);
        menu2.add(menuItem2[1]);
        
         //terceira linha do segundo menu "Editar"
        menuItem2[2] = new JMenuItem("Diretor");
        menuItem2[2].setMnemonic(KeyEvent.VK_P);
        menu2.add(menuItem2[2]);
        
         //quarta linha do segundo menu "Editar"
        menuItem2[3] = new JMenuItem("Ator(es)");
        menuItem2[3].setMnemonic(KeyEvent.VK_Q);
        menu2.add(menuItem2[3]);
        
         //quinta linha do segundo menu "Editar"
        menuItem2[4] = new JMenuItem("Ano de Produção");
        menuItem2[4].setMnemonic(KeyEvent.VK_K);
        menu2.add(menuItem2[4]);
        
         //novo menu chamado "Exibir"        
        menu3=new JMenu("Exibir");
        menu3.setMnemonic(KeyEvent.VK_R);
        menu3.getAccessibleContext().setAccessibleDescription("Menu de exibição de itens");
        menuBar.add(menu3);
        
        //primeira linha do terceiro menu chamado "Exibir"
        menuItem3[0] = new JMenuItem("Cadastro");
        menuItem3[0].setMnemonic(KeyEvent.VK_S);
        menuItem3[0].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_3, ActionEvent.ALT_MASK));
        menu3.add(menuItem3[0]);  
        
        //segunda linha do terceiro menu "Exibir"
        menuItem3[1] = new JMenuItem("Filme");
        menuItem3[1].setMnemonic(KeyEvent.VK_T);
        menu3.add(menuItem3[1]);
        
        //terceira linha do terceiro menu "Exibir"
        menuItem3[2] = new JMenuItem("Diretor");
        menuItem3[2].setMnemonic(KeyEvent.VK_U);
        menu3.add(menuItem3[2]);
        
        //quarta linha do terceiro menu "Exibir"
        menuItem3[3] = new JMenuItem("Ator(es)");
        menuItem3[3].setMnemonic(KeyEvent.VK_V);
        menu3.add(menuItem3[3]);
        
        //quinta linha do terceiro menu "Exibir"
        menuItem3[4] = new JMenuItem("Ano de Produção");
        menuItem3[4].setMnemonic(KeyEvent.VK_X);
        menu3.add(menuItem3[4]);
        
        //novo(e 4º) menu chamado "Favoritos"        
        menu4=new JMenu("Favoritos");
        menu4.setMnemonic(KeyEvent.VK_Y);
        menu4.getAccessibleContext().setAccessibleDescription("Menu dos filmes favoritos");
        menuBar.add(menu4);
        
        //primeira linha do quarto menu chamado "Favoritos"
        menuItem4[0] = new JMenuItem("Adicionar a Favoritos");
        menuItem4[0].setMnemonic(KeyEvent.VK_Y+KeyEvent.VK_1);
        menuItem4[0].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_4, ActionEvent.ALT_MASK));
        menu4.add(menuItem4[0]);  
        
        //segunda linha do quarto menu chamado "Favoritos"
        menuItem4[1] = new JMenuItem("Organizar os Filmes Favoritos");
        menuItem4[1].setMnemonic(KeyEvent.VK_Y+KeyEvent.VK_2);
        menu4.add(menuItem4[1]); 
        
        //código dinâmico dos filmes favoritos
        
        //quinto menu chamado "Imprimir"
        menu5=new JMenu("Imprimir");
        menu5.setMnemonic(KeyEvent.VK_W);
        menu5.getAccessibleContext().setAccessibleDescription("Imprimir filmes");
        menuBar.add(menu5);
        
        //primeira linha do quinto menu chamado "Imprimir"
        menuItem5[0] = new JMenuItem("Lista de Filmes");
        menuItem5[0].setMnemonic(KeyEvent.VK_W+KeyEvent.VK_1);
        menuItem5[0].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_5, ActionEvent.ALT_MASK));
        menu5.add(menuItem5[0]); 
        
        //segunda linha do quinto menu chamado "Imprimir"
        menuItem5[1] = new JMenuItem("Filme");
        menuItem5[1].setMnemonic(KeyEvent.VK_W+KeyEvent.VK_2);
        menu5.add(menuItem5[1]); 
        
        //sexto menu(de radio buttons) chamado "Aparência"
        menu6=new JMenu("Aparência");
        menu6.setMnemonic(KeyEvent.VK_Z);
        menu6.getAccessibleContext().setAccessibleDescription("Troca a aparência do Programa");
        menuBar.add(menu6);
        
        ButtonGroup group = new ButtonGroup();
        //primeira linha do sexto menu
        rbMenuItem[0]= new JRadioButtonMenuItem("Java Look and Feel");
        rbMenuItem[0].setSelected(true);
        rbMenuItem[0].setMnemonic(KeyEvent.VK_Z+KeyEvent.VK_1);
        
        group.add(rbMenuItem[0]);
        rbMenuItem[0].addItemListener(this);//ouvinte de evento para o radioButton
        menu6.add(rbMenuItem[0]);
        
        //segunda linha do sexto menu
        rbMenuItem[1] = new JRadioButtonMenuItem("Macintosh Look and Feel");
        rbMenuItem[1].setMnemonic(KeyEvent.VK_Z+KeyEvent.VK_2);
        
        group.add(rbMenuItem[1]);
        rbMenuItem[1].addItemListener(this);
        menu6.add(rbMenuItem[1]);
        
        //terceira linha do sexto menu
        rbMenuItem[2] = new JRadioButtonMenuItem("Motif Look and Feel");
        rbMenuItem[2].setMnemonic(KeyEvent.VK_Z+KeyEvent.VK_3);
        group.add(rbMenuItem[2]);
        rbMenuItem[2].addItemListener(this);
         menu6.add(rbMenuItem[2]);
        
        //quarta linha do sexto menu
        rbMenuItem[3] = new JRadioButtonMenuItem("Windows Look and Feel");
        rbMenuItem[3].setMnemonic(KeyEvent.VK_Z+KeyEvent.VK_4);
        group.add(rbMenuItem[3]);
        rbMenuItem[3].addItemListener(this);
        menu6.add(rbMenuItem[3]);
        
        //quinta linha do sexto menu
        rbMenuItem[4] = new JRadioButtonMenuItem("Kusnetsoff Look and Feel");
        rbMenuItem[4].setMnemonic(KeyEvent.VK_Z+KeyEvent.VK_5);
        //inserir kusnetsoff Look&Feel
        group.add(rbMenuItem[4]);
        rbMenuItem[4].addItemListener(this);
        menu6.add(rbMenuItem[4]);
        
        adicionaListeners();
                   
        return menuBar;
   }
   
    //***************************eventos do Mouse****************************
    public void mouseClicked(MouseEvent e) { 
     
      } 

      private void checkForTriggerEvent(MouseEvent e) { 
         // if(e.isPopupTrigger()) 
           //   popup.show(e.getComponent(), e.getX(), e.getY()); 
      } 

      public void mouseReleased(MouseEvent e) { 
          if(e.getSource() == desktop) { 
              checkForTriggerEvent(e);    
          } 
      } 

      public void mouseEntered(MouseEvent e) { 
      } 
       
      public void mouseExited(MouseEvent e) { 
      } 
      public void mousePressed(MouseEvent e) { 
          /* if(e.getSource() == desktop) { 
              checkForTriggerEvent(e);    
          }*/       
      } 
    public void mouseDragged(MouseEvent e) { 
    } 
    public void mouseMoved(MouseEvent e) { 
      } 
    
    
   //ação dos menus aqui!
   public void actionPerformed(ActionEvent e) {
   	if(e.getSource() == menuItem[0]) 
            exibirCadastro(e); 
    /*  else if(e.getSource() == menuItem[1]) 
            quit(); 
      else if(e.getSource() == menuItem[2]) 
            quit();
      else if(e.getSource()== menuItem[3])
            exibirCadastro();//para um novo cadastro
      else if(e.getSource()== menuItem[4])
            exibirCadastro();//para abrir o cadastro-visualizar!-       
      else if(e.getSource()== menuItem[5])
            deletarCadastro();
      else if(e.getSource()== menuItem[6])
            selecionarCadastro();           
      else if(e.getSource()==menuItem[7])
           System.exit(0); //sai da aplicação
      else if(e.getSource()==menuItem2[0])
           editarCadastro();//edita um cadastro!
      else if(e.getSource()==menuItem2[1])
           editarFilme();
      else if(e.getSource()==menuItem2[2])
           editarDiretor();          
      else if(e.getSource()==menuItem2[3])
           editarAtor();
      else if(e.getSource()==menuItem2[4])
           editarAno_De_Producao();   */
      else if(e.getSource()==menuItem3[0])
           exibirConsulta(e); /*//exibirá todos os cadastros         
      else if(e.getSource()==menuItem3[1])
           exibirFilme();          
      else if(e.getSource()==menuItem3[2])
           exibirDiretor();
      else if(e.getSource()==menuItem3[3])
           exibirAtor();          
      else if(e.getSource()==menuItem3[4])
           exibirAno_De_Producao();
      else if(e.getSource()==menuItem4[0])
           adicionarFavoritos();
      else if(e.getSource()==menuItem4[1])
           organizarFavoritos();          
      else if(e.getSource()==menuItem5[0])
           imprimirListaDeFilmes();
      else if(e.getSource()==menuItem5[1])
           imprimirFilme();                                                                                        
   	  */  
       
    }
   
    public void itemStateChanged(ItemEvent e) {
      if(rbMenuItem[0].isSelected()){
      	 mudaAparencia(lookAndFeelAtual);
	            }
      else if(rbMenuItem[1].isSelected())
      	  mudaAparencia(mac);  
      else if(rbMenuItem[2].isSelected()){ //MUITOS PROBLEMAS COM ESSE L&FEEL
      	 try{ Skin theSkinToUse = SkinLookAndFeel.loadThemePack("toxicthemepack.zip");
              SkinLookAndFeel.setSkin(theSkinToUse); 
              UIManager.setLookAndFeel(skin); 
              SwingUtilities.updateComponentTreeUI(frame); 
            }catch(Exception exc){
             exc.printStackTrace();
                                 }
           frame.repaint();                            	
                                         }//  mudaAparencia(motif);
      else if(rbMenuItem[3].isSelected())
          mudaAparencia(windows);
      else if(rbMenuItem[4].isSelected())
          mudaAparencia(kunststoff);                 
    }
    
        
    /************Método para alterar o Look & Feel da Aplicação**********************/
    
    /*
     * @method mudaAparencia mudará a aparência da tela principal do programa
     * @return void
     */   
   public void mudaAparencia(String aparencia){
   	      
     try {
        UIManager.setLookAndFeel(aparencia);
        SwingUtilities.updateComponentTreeUI(frame);        
     }
     catch (InstantiationException e) {  
       e.printStackTrace();    	
     }
     catch (ClassNotFoundException e) {
       e.printStackTrace(); 	
     }
     catch (UnsupportedLookAndFeelException e){
       e.printStackTrace(); 	
     }
     catch (IllegalAccessException e) {
       e.printStackTrace(); 	
       }
     
         frame.repaint();
        //frame.pack();-não usar!                
                                               }//fim de mudaAparencia()
                                               
      //método que será responsável pela exibição do cadastro 
   private void exibirCadastro(ActionEvent evt) { 
      if (cadastro == null) { 
         // inicia frame 
         cadastro = new Cadastro(this); 
         // adiciona o frame no DesktopPane 
         desktop.add(cadastro); 
      } 
      // Exibe o frame 
      cadastro.setVisible(true); 

   }  
   
   // este método está declarado como público para poder ser executado por outra classe 
   public void fecharCadastro(ActionEvent evt) { 
      // verifica se há uma referencia válida para o objeto 
      if (cadastro != null) { 
         // libera o objeto 
         cadastro.dispose(); 
         cadastro = null; 
      } 
   } 
   
   //método responsável pela criação da tela de consulta de dados
   private void exibirConsulta(ActionEvent evt) { 
      if (consulta == null) { 
         // inicia frame interno
         consulta = new Consulta(this); 
         // adiciona o frame no DesktopPane 
         desktop.add(consulta); 
      } 
      // Exibe o frame 
      consulta.setVisible(true); 
   }  
   
   //é público para poder ser executado por outra classe
   public void fecharConsulta(ActionEvent evt) { 
      // verifica se há uma referencia válida para o objeto 
      if (consulta != null) { 
         // libera o objeto 
         consulta.dispose(); 
         consulta = null; 
      } 
   } 
   
   public void adicionaListeners(){
   	for(int i=0;i<8;i++)
   	 menuItem[i].addActionListener(this);
   	for(int i=0;i<5;i++)
   	 { menuItem2[i].addActionListener(this);
   	   menuItem3[i].addActionListener(this);}
   	for(int i=0;i<2;i++)
   	 { menuItem4[i].addActionListener(this);
   	   menuItem5[i].addActionListener(this);}    
   	}                                              
   
   public Container criaContentPane() {
        //Create the content-pane-to-be.
        JPanel contentPane = new JPanel(new BorderLayout());
        
        desktop = new JDesktopPane(){
         Image im = (new ImageIcon("background.jpg")).getImage(); 
         public void paintComponent(Graphics g){        
          g.drawImage(im,0,0,this);            }
                                     };//fim do JDesktopPane
        contentPane.setOpaque(true);

        /*//Create a scrolled text area.
        saida = new JTextArea(5, 30);
        saida.setEditable(false);
        scroll = new JScrollPane(saida);

        //Add the text area to the content pane.
        contentPane.add(scroll, BorderLayout.CENTER);*/
        
        contentPane.add(desktop);//adiciono o JDesktopPane ao JPanel 

        return contentPane;
    }
    
    private void exibeTela(){
   	//Decora a janela.
        JFrame.setDefaultLookAndFeelDecorated(true);//não é suportado em todos os L&F´s
        JDialog.setDefaultLookAndFeelDecorated(true);
        
        //Cria e seta a janela.
        frame = new JFrame("Cadastro de filmes em DVD");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //seta a barra e o content pane anexando-os ao JFrame.
        
        frame.setJMenuBar(this.criaMenu());
        frame.setContentPane(this.criaContentPane());
        
        //adiciona o Mouses Listener aos componentes 
        frame.addMouseListener(this);
        frame.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
              
        
        //ajusta o tamanho da janela
        frame.setSize(900,520);
        //centraliza o frame na tela
        frame.setLocationRelativeTo(null);
        //mostra a janela.
        frame.setVisible(true);
        
   	
   }//fim de exibeTela()
   
   public static void main(String[] args) {
   	   	   	  
   	try{
	  UIManager.put ("FileChooser.lookInLabelText", "Consulte:"); 
      UIManager.put ("FileChooser.lookInLabelMnemonic", "o"); 
      UIManager.put ("FileChooser.fileNameLabelText", "Nome do arquivo:"); 
      UIManager.put ("FileChooser.fileNameLabelMnemonic", "N"); 
      UIManager.put ("FileChooser.filesOfTypeLabelText", "Arquivos do tipo:"); 
      UIManager.put ("FileChooser.filesOfTypeLabelMnemonic", "t"); 
      UIManager.put ("FileChooser.upFolderToolTipText", "Um Nível Acima"); 
      UIManager.put ("FileChooser.upFolderAccessibleName", "Para Cima"); 
      UIManager.put ("FileChooser.homeFolderToolTipText", "Inicio"); 
      UIManager.put ("FileChooser.homeFolderAccessibleName", "Inicio"); 
      UIManager.put ("FileChooser.newFolderToolTipText", "Criar uma Nova Pasta"); 
      UIManager.put ("FileChooser.newFolderAccessibleName", "Nova Pasta"); 
      UIManager.put ("FileChooser.listViewButtonToolTipText", "Lista"); 
      UIManager.put ("FileChooser.listViewButtonAccessibleName", "Lista"); 
      UIManager.put ("FileChooser.detailsViewButtonToolTipText", "Detalhes"); 
      UIManager.put ("FileChooser.detailsViewButtonAccessibleName", "Detalhes");        
      UIManager.put ("FileChooser.cancelButtonText", "Cancelar"); 
      UIManager.put ("FileChooser.cancelButtonMnemonic", "C"); 
      UIManager.put ("FileChooser.cancelButtonToolTipText","Cancelar"); 
      UIManager.put ("FileChooser.openButtonText", "Abrir"); 
      UIManager.put ("FileChooser.openButtonMnemonic", "A"); 
      UIManager.put ("FileChooser.openButtonToolTipText","Abrir ");
      UIManager.put ("FileChooser.directoryOpenButtonText","Abrir");
      UIManager.put ("FileChooser.directoryOpenButtonToolTipText","Abrir Diretório");
      UIManager.put ("FileChooser.saveButtonText","Salvar"); 
      UIManager.put ("FileChooser.saveButtonToolTipText","Salvar Arquivo"); 
      UIManager.put ("FileChooser.saveInLabelText", "Salvar em:"); 
      //UIManager.update();
			}	
		catch(Exception e){
		    e.printStackTrace();
		    System.err.println("UIManager nao suportado!"); 
		}	  
   	
        //Agenda um trabalho para o event-dispatching thread:
        //cria e mostra a aplicação GUI.
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
              new Principal();}
                                                              });
                
   }//fim do main()
	
 }//fim da classe Principal
Lembrando q vc deverá ter os respectivos Look And Feels no Classpath(procure os jars na net)
rodrigo.achilles

Valeu mesmo, Ironlynx
Mas assim tem haver UI com a Interface, ainda estou um pouco na dúvida o que seria isso.

Abraços e obrigado! :slight_smile:

Ironlynx

Claro q tem!
Ah, mais sobre l&f aqui:
http://www.javaalmanac.com/egs/javax.swing/LookFeel.html
http://scv.bu.edu/Doc/Java/tutorial/ui/overview/

Criado 22 de junho de 2005
Ultima resposta 22 de jun. de 2005
Respostas 3
Participantes 2