Como usar o substance look and feel?

4 respostas
R

Como usar o substance look and feel?

Baixei o arquivo .jar do substance look and feel, mas não sei setá-lo para usar em minha aplicação, alguém poderia me dar uma luzinha…

4 Respostas

I

Seta via UIManager no seu método main.

dicas aqui:
http://rfiume.blogspot.com/2007/02/substance-look-and-feel.html

R

É que eu já tentei setar assim, mas tá dando erro… Vê como fiz:

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

public class Rcalc extends JFrame{
	Container c;
	private String[] moedas = {"Dolar Americano (USD)", "Euro", "Real", "Kwanza"};
	
	public Rcalc(){

		setTitle("R-Calc");
    	c = new Container();
		c = getContentPane();	
		c.setLayout(new GridBagLayout());	

		JPanel calc = new JPanel();
		calc.setLayout(new GridBagLayout());
		JPanel convert = new JPanel();
		convert.setLayout(new GridBagLayout());

		JButton mmais = new JButton(" M+ ");
		JButton mr = new JButton(" MR ");
		JButton del = new JButton("  «  ");
		JButton clear = new JButton(" C ");
		
		JTextField calculo = new JTextField(15);
		calculo.setPreferredSize(new Dimension(20,50));

		JComboBox comboDesde = new JComboBox(moedas);
		JComboBox comboPara = new JComboBox(moedas);
		
		JLabel result = new JLabel();

		calc.add(calculo, new GridBagConstraints(0,0,8,1,0,0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5,5,0,0),0,0));
		calc.add(mmais, new GridBagConstraints(0,1,1,2,0,0, GridBagConstraints.EAST, GridBagConstraints.HORIZONTAL, new Insets(5,5,0,0),0,0));
		calc.add(mr, new GridBagConstraints(1,1,2,2,0,0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5,5,0,0),0,0));
		
		calc.add(del, new GridBagConstraints(2,1,3,2,0,0, GridBagConstraints.EAST, GridBagConstraints.HORIZONTAL, new Insets(5,47,0,0),0,0));
		calc.add(clear, new GridBagConstraints(3,1,5,2,0,0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5,45,0,0),0,0));

		c.add(calc, new GridBagConstraints(0,0,1,1,0,0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(0,0,0,0),0,0));
		//c.add(convert, new GridBagConstraints(1,0,2,1,0,0, GridBagConstraints.EAST, GridBagConstraints.HORIZONTAL, new Insets(0,0,0,0),0,0));

		setSize(400, 280);
    	setLocationRelativeTo(null);
    	//setResizable(false);
    	setVisible(true);

		
		
	}
	public static void main(String[] args){

	/*try {
      UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel");
	
    } 
    catch (Exception e) {
      e.printStackTrace();
    }	*/

		try {
		// Define o look and feel.
			UIManager.setLookAndFeel(new SubstanceBusinessLookAndFeel());
		// Escurece o tema.
			SubstanceLookAndFeel.setCurrentTheme(new SubstanceCremeTheme().shade(0.1));
		// Define o watermark.
			SubstanceLookAndFeel.setCurrentWatermark(new SubstanceMetalWallWatermark()); 
		// Ajusta a forma dos botões.
			SubstanceLookAndFeel.setCurrentButtonShaper(new ClassicButtonShaper());
		// Gradient painters for buttons.
			SubstanceLookAndFeel.setCurrentGradientPainter(new WaveGradientPainter()); 
		// Faz com que o watermark vaze (bleed) por componentes opacos, como JTextField's.
		// Note a área de texto da figura abaixo.
			UIManager.put(SubstanceLookAndFeel.WATERMARK_TO_BLEED, Boolean.TRUE);
		// Ajusta localização e quantidade de botões da bara de rolagem (scrolbar)
		// Perceba na figura abaixo que a scrolbar possui três botões.
			UIManager.put(SubstanceLookAndFeel.SCROLL_PANE_BUTTONS_POLICY,
			SubstanceConstants.ScrollPaneButtonPolicyKind.MULTIPLE);
	} 
	catch (UnsupportedLookAndFeelException ex) {
			ex.printStackTrace();
	}	

		Rcalc calculadora = new Rcalc();
		calculadora.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

Se me desse um exemplo prático de como setá-lo agradecia, pois já investiguei em bastantes links, mas não consegui…

I

rasinc,
primeiro vá em:
https://substance.dev.java.net/
clique em "GET":
Baixe o Substance 6.1 library (de 1.76MB) e o Trident animation library e ponha no seu classpath da aplicação, não esquecendo de importá-los.no seu exemplo, é algo + ou - assim:

import javax.swing.*;
import java.awt.*;
import org.pushingpixels.trident.ease.*;
import org.pushingpixels.substance.api.*;
import org.pushingpixels.substance.api.skin.*;

public class Rcalc extends JFrame{
	Container c;
	private String[] moedas = {"Dolar Americano (USD)", "Euro", "Real", "Kwanza"};

	public Rcalc(){

		setTitle("R-Calc");
    	c = new Container();
		c = getContentPane();
		c.setLayout(new GridBagLayout());

		JPanel calc = new JPanel();
		calc.setLayout(new GridBagLayout());
		JPanel convert = new JPanel();
		convert.setLayout(new GridBagLayout());

		JButton mmais = new JButton(" M+ ");
		JButton mr = new JButton(" MR ");
		JButton del = new JButton("  «  ");
		JButton clear = new JButton(" C ");

		JTextField calculo = new JTextField(15);
		calculo.setPreferredSize(new Dimension(20,50));

		JComboBox comboDesde = new JComboBox(moedas);
		JComboBox comboPara = new JComboBox(moedas);

		JLabel result = new JLabel();

		calc.add(calculo, new GridBagConstraints(0,0,8,1,0,0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5,5,0,0),0,0));
		calc.add(mmais, new GridBagConstraints(0,1,1,2,0,0, GridBagConstraints.EAST, GridBagConstraints.HORIZONTAL, new Insets(5,5,0,0),0,0));
		calc.add(mr, new GridBagConstraints(1,1,2,2,0,0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5,5,0,0),0,0));

		calc.add(del, new GridBagConstraints(2,1,3,2,0,0, GridBagConstraints.EAST, GridBagConstraints.HORIZONTAL, new Insets(5,47,0,0),0,0));
		calc.add(clear, new GridBagConstraints(3,1,5,2,0,0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5,45,0,0),0,0));
		c.add(calc, new GridBagConstraints(0,0,1,1,0,0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(0,0,0,0),0,0));


		setSize(400, 280);
    	setLocationRelativeTo(null);
    	setVisible(true);
	}
	public static void main(String[] args){
	 SwingUtilities.invokeLater(new Runnable() {
      public void run() {
		try {
		// Define o look and feel.
			UIManager.setLookAndFeel(new SubstanceBusinessLookAndFeel());
			SubstanceLookAndFeel.setSkin(new OfficeBlue2007Skin());
	}
	catch (UnsupportedLookAndFeelException ex) {
			ex.printStackTrace();
	}
        	Rcalc calculadora = new Rcalc();
		calculadora.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      }
    });
	}//fim do método main
}

Leia melhor a página do próprio projeto que lá diz como setar as skins e temas. :wink:

R

Pois é, valeu pela força, ainda assim dá um monte de erros, mas consegui setar o JTatto Look And Feel que também gostei bastante… Valeu pela força… Dou o tópico como resolvido.

Criado 21 de novembro de 2010
Ultima resposta 22 de nov. de 2010
Respostas 4
Participantes 2