Girar String em JLabel

2 respostas
LuizLG

Bom dia!

Tenho uma classe que estende JLabel, estou sobreescrevendo o método PaintComponent() para que a string contida possa ser rotacionada.
Já tentei com o método rotate e utilizando AffineTransform de várias maneiras, mas acho que devo estar esquecendo de algo =p

Dessa maneira eu consegui porém preciso modificar a área do JLabel pois o mesmo fica quadrado, independente do tamanho.
public void paintComponent(Graphics g){	
	Graphics2D g2d = (Graphics2D) g;

	AffineTransform at = new AffineTransform();
	at = AffineTransform.getRotateInstance (  Math.toRadians ( 270 )  ) ;
	at.translate ( -getWidth (  ), 0 ) ;
	g2d.transform(at);

	super.paintComponent(g2d);	
}

Estou fazendo algo de errado? Há algum caminho mais simples?

Valeu!

2 Respostas

T

http://www.jroller.com/page/santhosh?entry=adobe_like_tabbedpane_in_swing

LuizLG

Valeu Thingol!!!

Tá uma beleza agora! xD

public class Entity extends JLabel {
	.
	.
	.

	public void paintComponent(Graphics g){		
		Graphics2D g2d = (Graphics2D) g;
		
		FontMetrics fm = this.getFontMetrics(getFont());	

		AffineTransform oldTransform = g2d.getTransform(); 
		g2d.translate(0, getHeight()-5); 
		g2d.rotate(-Math.PI/2); 
		
		g2d.drawString(getText(), 0, fm.getLeading()+fm.getAscent()); 
			
		setSize(fm.getHeight(), ( getText().length() * fm.getAscent()) );
 
		g2d.setTransform(oldTransform);
	}
	.
	.
	.
}
Criado 9 de março de 2007
Ultima resposta 9 de mar. de 2007
Respostas 2
Participantes 2