Una opción fácil usando la clase AffineTransform consiste en hacer que el botón se gire, por ejemplo 45 grados. El siguiente código de ejemplo hace eso precisamente. Muestra una ventana con un botón girado 45 grados.
package chuidiang.ejemplos;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.WindowConstants;
public class EtiquetaGirada extends JButton
{
public void paint (Graphics g)
{
public Dimension getPreferredSize()
{
public static void main(String [] args)
{
}{
// Para girar
AffineTransform at = new AffineTransform();
at.scale(0.6,0.6); // Se reduce el tamaño para que quepa girado
at.translate (80,0); // Se traslada para que quede centrado
at.rotate(45*Math.PI/180); // Se rota 45 grados
((Graphics2D)g).setTransform(at);
super.paint(g);
}AffineTransform at = new AffineTransform();
at.scale(0.6,0.6); // Se reduce el tamaño para que quepa girado
at.translate (80,0); // Se traslada para que quede centrado
at.rotate(45*Math.PI/180); // Se rota 45 grados
((Graphics2D)g).setTransform(at);
super.paint(g);
public Dimension getPreferredSize()
{
return new Dimension (100,100);
}public static void main(String [] args)
{
JFrame v = new JFrame();
v.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
EtiquetaGirada l= new EtiquetaGirada();
l.setText("hola");
l.setFont(l.getFont().deriveFont((float)30.0));
v.getContentPane().setLayout(new FlowLayout());
v.getContentPane().add(l);
v.pack();
v.setVisible(true);
}v.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
EtiquetaGirada l= new EtiquetaGirada();
l.setText("hola");
l.setFont(l.getFont().deriveFont((float)30.0));
v.getContentPane().setLayout(new FlowLayout());
v.getContentPane().add(l);
v.pack();
v.setVisible(true);
Y este es el resultado
Bueno, no queda demasiado allá, pero es cuestión de arreglarlo un poquito.
No hay comentarios:
Publicar un comentario