Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
com
java jar Metalworks.jar
by Casidiablo
http://elhacker.net ||| http://casidiablo.blogspot.com
by Casidiablo
http://elhacker.net ||| http://casidiablo.blogspot.com
//Ejemplo1Look .java
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class Ejemplo1Look extends JFrame
{
public Ejemplo1Look()
{
super("Ejemplo 1");
JButton boton = new JButton("Mostrar dialogo");
boton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null,
"Y así se ve un cuadro de dialogo de error",
"Mensaje",JOptionPane.ERROR_MESSAGE);
}
}
);
getContentPane().add(new JLabel("Asi se ve un Frame"),
BorderLayout.NORTH);
getContentPane().add(boton);
setSize(200,80);
setVisible(true);
}
public static void main(String args[])
{
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);
Ejemplo1Look ventana = new Ejemplo1Look();
ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
by Casidiablo
http://elhacker.net ||| http://casidiablo.blogspot.com
#Aquí puedes colocar comentarios
name=Payaso
primary1=200,0,66
primary2=0,0,255
primary3=0,255,0
secondary1=255,255,0
secondary2=0,255,255
secondary3=255,0,255
black=255,255,200
white=25,80,150
by Casidiablo
http://elhacker.net ||| http://casidiablo.blogspot.com
//Ejemplo2Look .java
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.io.*;
import javax.swing.plaf.metal.*;
public class Ejemplo2Look extends JFrame
{
public Ejemplo2Look()
{
super("Ejemplo 2");
JButton boton = new JButton("Cargar tema");
boton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
cargarTema();
}
}
);
getContentPane().add(boton);
getContentPane().add(new JLabel("Así se ven las labels"),
BorderLayout.NORTH);
getContentPane().add(new JTextField("Y así las cajas de texto"),
BorderLayout.SOUTH);
getContentPane().add(new JScrollPane(new JTextArea("Area de
texto")), BorderLayout.WEST);
getContentPane().add(new JSlider(SwingConstants.VERTICAL, 0,
200, 10 ), BorderLayout.EAST);
setSize(400,200);
UIManager.addPropertyChangeListener(new
UISwitchListener((JComponent)getRootPane()));
setVisible(true);
}
public void cargarTema()
{
MetalTheme miTema = null;
try{
InputStream flujoEntrada =
getClass().getResourceAsStream("Tema.theme");
miTema = new PropertiesMetalTheme(flujoEntrada);
}catch(NullPointerException npe) {System.out.println(npe);}
MetalLookAndFeel.setCurrentTheme(miTema);
try{
UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAnd
Feel");
}catch (Exception ex){
System.out.println("Falló la carga del tema");
System.out.println(ex);
}
}
public static void main(String args[])
{
UIManager.put("swing.boldMetal", Boolean.FALSE);
by Casidiablo
http://elhacker.net ||| http://casidiablo.blogspot.com
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);
Toolkit.getDefaultToolkit().setDynamicLayout(true);
System.setProperty("sun.awt.noerasebackground","true");
try{
UIManager.setLookAndFeel(new MetalLookAndFeel());
}catch ( UnsupportedLookAndFeelException e ){
System.out.println ("Metal Look & Feel no es soportada en
esta plataforma");
System.exit(0);
}
Ejemplo2Look ventana = new Ejemplo2Look();
ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Ahora, antes que se me olvide, tengo que aclarar algo. Para que el
programa funcione perfectamente tenemos que usar dos programas
creados por el maestro Steve Wilson: PropertiesMetalTheme.java y
UISwitchListener.java.
by Casidiablo
http://elhacker.net ||| http://casidiablo.blogspot.com
//Ejemplo simple de tema en clase
// EstiloHalloween .java
import javax.swing.plaf.*;
import javax.swing.plaf.metal.*;
import javax.swing.*;
public class EstiloHalloween extends DefaultMetalTheme
{
public String getName() { return "Halloween"; }
private final ColorUIResource primary1 = new ColorUIResource(204, 102, 0);
private final ColorUIResource primary2 = new ColorUIResource(255, 0, 0);
private final ColorUIResource primary3 = new ColorUIResource(255, 204,102);
protected ColorUIResource getPrimary1() { return primary1; }
protected ColorUIResource getPrimary2() { return primary2; }
protected ColorUIResource getPrimary3() { return primary3; }
}
Como ven todo es muy fácil; simplemente declaramos una clase que
herede de DefaultMetalTheme, y creamos tres objetos de la clase
ColorUIResource que sean privados (private) y constantes (final).
Cada uno vá a simbolizar un color para la interfaz de usuario. Si no
comprendes bien es porque no has leído lo de primary1, primary2,
etc. allí arriba. Los objetos ColorUIResource los inicializamos con tres
números separados por comas que representan un color en formato
RGB.
Por último declaramos tres métodos protected que retornen el valor
de los objetos ColorUIResource.
// Ejemplo3Look .java
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.plaf.metal.*;
public class Ejemplo3Look extends JFrame
{
public Ejemplo3Look()
{
super("Ejemplo 3 Halloween");
JButton boton = new JButton("Mostrar dialogo");
boton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null,
"Y así se ve un cuadro de dialogo de alerta",
by Casidiablo
http://elhacker.net ||| http://casidiablo.blogspot.com
"Mensaje",JOptionPane.WARNING_MESSAGE);
}
}
);
getContentPane().add(new JLabel("Asi se ve un Frame"),
BorderLayout.NORTH);
getContentPane().add(boton);
setSize(200,80);
setVisible(true);
}
public static void main(String args[])
{
MetalLookAndFeel.setCurrentTheme(new EstiloHalloween());
try{
UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
} catch (Exception ex) {
System.out.println("Falló la carga del tema");
System.out.println(ex);
}
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);
Ejemplo3Look ventana = new Ejemplo3Look();
ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
// EstiloHalloween2.java
import javax.swing.plaf.*;
import javax.swing.plaf.metal.*;
import javax.swing.*;
public class EstiloHalloween2 extends DefaultMetalTheme
{
public String getName() { return "Halloween"; }
private final ColorUIResource primary1 = new ColorUIResource(204, 102, 0);
private final ColorUIResource primary2 = new ColorUIResource(255, 0, 0);
private final ColorUIResource primary3 = new ColorUIResource(255, 204,
102);
private final ColorUIResource secondary1 = new ColorUIResource( 111, 111,
111);
private final ColorUIResource secondary2 = new ColorUIResource(255, 204,
102);
by Casidiablo
http://elhacker.net ||| http://casidiablo.blogspot.com
private final ColorUIResource secondary3 = new ColorUIResource(204, 102,
0);
private final ColorUIResource black = new ColorUIResource(255, 255, 255);
private final ColorUIResource white = new ColorUIResource(0, 0, 0);
protected ColorUIResource getPrimary1() { return primary1; }
protected ColorUIResource getPrimary2() { return primary2; }
protected ColorUIResource getPrimary3() { return primary3; }
protected ColorUIResource getSecondary1() { return secondary1; }
protected ColorUIResource getSecondary2() { return secondary2; }
protected ColorUIResource getSecondary3() { return secondary3; }
protected ColorUIResource getBlack() { return black; }
protected ColorUIResource getWhite() { return white; }
}
// Ejemplo4Look .java
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.io.*;
import javax.swing.plaf.metal.*;
public class Ejemplo4Look extends JFrame
{
public Ejemplo4Look()
{
super("Ejemplo 4 Halloween");
getContentPane().add(new JButton("Los botones XD"));
getContentPane().add(new JLabel("Así se ven las labels"),
BorderLayout.NORTH);
getContentPane().add(new JTextField("Y así las cajas de texto"),
BorderLayout.SOUTH);
getContentPane().add(new JScrollPane(new JTextArea("Area de\ntexto")),
BorderLayout.WEST);
getContentPane().add(new JSlider(SwingConstants.VERTICAL, 0, 200, 10 ),
BorderLayout.EAST);
setSize(400,200);
setVisible(true);
}
public static void main(String args[])
{
MetalLookAndFeel.setCurrentTheme(new EstiloHalloween2());
try{
UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
}catch (Exception ex){
System.out.println("Falló la carga del tema");
System.out.println(ex);
}
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);
by Casidiablo
http://elhacker.net ||| http://casidiablo.blogspot.com
try{
UIManager.setLookAndFeel(new MetalLookAndFeel());
}catch ( UnsupportedLookAndFeelException e ){
System.out.println ("Metal Look & Feel no es soportada en esta
plataforma");
System.exit(0);
}
Ejemplo4Look ventana = new Ejemplo4Look();
ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Saludos!!!
by Casidiablo