Look and Feel do Windows XP

12 respostas
H

Seguinte to querendo mudar o L&F padrao do Java p/ o L&F do Win XP. Baixei uma biblioteca (.jar), fiz td direitinho, ele até muda algo, mas não fica como no Windows Xp, como diz la no site onde baixei. Alguem q ja conseguiu fazer isto, me ajude aqui e veja se tem algo errado no codigo, vlw...

Código:

/*
  * Main.java
  *
  * Created on 11 de Setembro de 2006, 14:44
  */
 
 package look_feel;
 
 import javax.swing.JOptionPane;
 import javax.swing.UIManager;
 
 /**
  *
  * @author  heverton
  */
 public class Main extends javax.swing.JFrame {
     
     /** Creates new form Main */
     public Main() {
         initComponents();
     }
     
     /** This method is called from within the constructor to
      * initialize the form.
      * WARNING: Do NOT modify this code. The content of this method is
      * always regenerated by the Form Editor.
      */
     // <editor-fold defaultstate="collapsed" desc=" Generated Code ">                          
     private void initComponents() {
         jTabbedPane3 = new javax.swing.JTabbedPane();
         jPanel1 = new javax.swing.JPanel();
         jTextField1 = new javax.swing.JTextField();
         jButton1 = new javax.swing.JButton();
         jPanel2 = new javax.swing.JPanel();
         jSlider2 = new javax.swing.JSlider();
 
         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
         jTextField1.setText("jTextField1");
 
         jButton1.setText("jButton1");
 
         org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1);
         jPanel1.setLayout(jPanel1Layout);
         jPanel1Layout.setHorizontalGroup(
             jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
             .add(jPanel1Layout.createSequentialGroup()
                 .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                     .add(jPanel1Layout.createSequentialGroup()
                         .add(114, 114, 114)
                         .add(jTextField1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 116, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                     .add(jPanel1Layout.createSequentialGroup()
                         .add(141, 141, 141)
                         .add(jButton1)))
                 .addContainerGap(145, Short.MAX_VALUE))
         );
         jPanel1Layout.setVerticalGroup(
             jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
             .add(jPanel1Layout.createSequentialGroup()
                 .add(63, 63, 63)
                 .add(jTextField1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                 .add(56, 56, 56)
                 .add(jButton1)
                 .addContainerGap(111, Short.MAX_VALUE))
         );
         jTabbedPane3.addTab("tab1", jPanel1);
 
         org.jdesktop.layout.GroupLayout jPanel2Layout = new org.jdesktop.layout.GroupLayout(jPanel2);
         jPanel2.setLayout(jPanel2Layout);
         jPanel2Layout.setHorizontalGroup(
             jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
             .add(jPanel2Layout.createSequentialGroup()
                 .add(84, 84, 84)
                 .add(jSlider2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                 .addContainerGap(91, Short.MAX_VALUE))
         );
         jPanel2Layout.setVerticalGroup(
             jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
             .add(jPanel2Layout.createSequentialGroup()
                 .add(120, 120, 120)
                 .add(jSlider2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                 .addContainerGap(127, Short.MAX_VALUE))
         );
         jTabbedPane3.addTab("tab2", jPanel2);
 
         org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
         getContentPane().setLayout(layout);
         layout.setHorizontalGroup(
             layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
             .add(layout.createSequentialGroup()
                 .addContainerGap()
                 .add(jTabbedPane3, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 380, Short.MAX_VALUE)
                 .addContainerGap())
         );
         layout.setVerticalGroup(
             layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
             .add(layout.createSequentialGroup()
                 .addContainerGap()
                 .add(jTabbedPane3, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 300, Short.MAX_VALUE)
                 .addContainerGap())
         );
         pack();
     }// </editor-fold>                        
     
     /**
      * @param args the command line arguments
      */
     public static void main(String args[]) {
         java.awt.EventQueue.invokeLater(new Runnable() {
             public void run() {
                 new Main().setVisible(true);
                 try {
                     UIManager.setLookAndFeel("com.stefankrause.xplookandfeel.XPLookAndFeel");
                 } catch (Exception e) {
                     JOptionPane.showMessageDialog(null,"Não foi possível carregar o \"Skin\" padrão. Definindo o padrão original.",
                                                   "Erro", JOptionPane.ERROR_MESSAGE);
                 }
             }
         });
     }
     
     // Variables declaration - do not modify                     
     private javax.swing.JButton jButton1;
     private javax.swing.JPanel jPanel1;
     private javax.swing.JPanel jPanel2;
     private javax.swing.JSlider jSlider2;
     private javax.swing.JTabbedPane jTabbedPane3;
     private javax.swing.JTextField jTextField1;
     // End of variables declaration                   
     
 }

Eu baixei este pacote em http://www.stefan-krause.com/java/, segui tds as instruções la e n pegou.

Ficou assim:
[img]http://www.myjavaserver.com/~hlds/imagens/interface3.JPG[/img]

Porem queria q ficasse assim:

[img]http://www.myjavaserver.com/~hlds/imagens/interface2.jpg[/img]

Alguem ajuda ai, vlws...

12 Respostas

Luiz_Gustavo

Você quer a aparência do Windows no Linux tb, ou só no Windows.
Se você quiser a aparência do Windows no Linux tb pode fazer sentido pegar uma biblioteca, ma se você quiser a aparência só no Windows, e quando a aplicação for levada para o Linux ela ficar com a aparência padrão do gerenciador gráfico, vc pode fazer o seguinte:

try {
  UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName()) ;
} catch (Exception e) {
}

[]'s

H

Cara eu to ligado q para aparecer a aparencia do windows no linux, tem q pegar a biblioteca, porem o problema n eh este, o problema eh q pegando biblioteca ou usando a do sistema, ele n ta ficando c a aparencia do windows, entendeu? e eu quero saber o q esta acontecendo, pq a aparencia q ta mostrando eh a da primeira foto, entendeu?

Luiz_Gustavo

Pois é colega…
A única dúvida que eu tinha com relação a seu post é se a aparência do Win deveria permanecer no Linux tb…
A minha dica (o exemplo de código) só vale se você quiser a aparência do sistema em uso, e não sempre a aparência do Windows.

[]'s

H

vc ja conseguiu por a aparencia da segunda foto?

Luiz_Gustavo

já… só no Windows
se vc quiser essa aparência no Linux tb, creio que só com a biblioteca que você citou (que aliás eu nunca usei).

[]'s

T

Você pode tentar o JGoodies, http://www.jgoodies.com/freeware/looks/index.html

H

galera eu agradeco a tds pela empenho, mas eu testei mtas bibliotecas e na ta mudando a aparencia (a aparencia fica igual a primeira figura q postei) :frowning:

inclusive, testei esta do JGoodies. N sei o q ta acontecendo, mas n ta oegando.

Existe algum metodo trava esta aprencia padrao do swing e precise “destrava-lo”, n sei oq ta contecendo. Ta dificil :frowning:

Luiz_Gustavo

bom…
mesmo sabendo que você quer a aparência do Windows tb no linux, tô te mandando um exemplo que deixa com a aparência do Windows, no mínimo, no Windows :smiley:
Não é necessário biblioteca nem nada.

se isso puder ajudar de alguma forma.

import javax.swing.UIManager;
  import javax.swing.*;
  import java.awt.BorderLayout;

  public class Main extends javax.swing.JFrame {      

      public Main() {
      	  
      	 try {
		   
		   UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName()) ;
		 } 
		 catch (Exception e) {}
           
         initComponents();
      }
                         
      private void initComponents() {
          
          jButton1 = new JButton("jButton1");
          jButton2 = new JButton("jButton2");
          jButton3 = new JButton("jButton3");
          jButton4 = new JButton("jButton4");
    
          setLayout(new BorderLayout());
          
          add(jButton1, BorderLayout.NORTH);
          add(jButton2, BorderLayout.EAST);
          add(jButton3, BorderLayout.WEST);
          add(jButton4, BorderLayout.SOUTH);
          
          
          setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          setSize(300,300);
                    
      }                      
      
      
      public static void main(String args[]) {   	
      	 
      	   
      	  java.awt.EventQueue.invokeLater(new Runnable() {
              public void run() {
                  new Main().setVisible(true);
              }
          });
      }
                               
      private javax.swing.JButton jButton1;
      private javax.swing.JButton jButton2;
      private javax.swing.JButton jButton3;
      private javax.swing.JButton jButton4;

                        
      
  }

[]'s

Luiz_Gustavo

no exemplo que te passei, faça um teste.

substitua esse código:

try {
     UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()) ;
} 
catch (Exception e) { // ooppss!!}

por esse (que estava originalmente no seu):

try { 
    UIManager.setLookAndFeel("com.stefankrause.xplookandfeel.XPLookAndFeel");
} catch (Exception e) { // ooppss!!! }

[editado] … antes de chamar o initComponents() [/editado]

H

aeee, ate q enfim pegou, era isso msm, o comando temq vir antes do initComponentes(), vlw fera!!!

outra coisa, so p fechar, a cor de fundo do JFrame n tem como mudar ne? pq eu to mudando, mas ela volta a exibir o padrao do Swing (cinza), daí p exibir a cor de fundo do win xp, eu to colocando o JPanel e dai ta exibindo o fundo da cor do XP, eh assim msm q se faz ne?

VitorPavani

eu to querendo colocar em um aplicativo que roda no linux com a aparência de windows XP com o jgoodies …alguem sabe como fazer isso ???

H

use esse codigo acima, n se esquecendo q ele tem q ta antes da chamada da interface grafica, e lembrando tb q tem q baixar e adicionar o jar do look and feel desejado, eu n me lembro onde peguei o meu, mas qlq 1 serve, flw…

Criado 13 de setembro de 2006
Ultima resposta 20 de jan. de 2007
Respostas 12
Participantes 4