ist es möglich ein JLabel um 45° zu drehen? (nicht den inhalt) sondern das Label selbst, wenn ja wie denn?
Illuvatar hat gesagt.:Man könnte natürlich <html>H
A
L
L
O</html> übergeben
/****************************************************************************************************************************
*
*
Title: Klasse stellt ein drehendes JLabel mit Text dar</p>
*
*
Description: </p>
*
*
Copyright: Copyright (c) 2006</p>
*
*
Company: Taschek Joerg</p>
*
* @author Taschek Jörg
* @version 1.0 Fertige Version 12.04.06
***************************************************************************************************************************/
private class RotateLabel extends JLabel
{
private double rotate = 0;
private int width = 0;
/****************************************************************************************************************************
* Standardkonstruktor der einem ein PrintAbleElement übergibt, welches den text + rotationsgrad hat
* @param text Text
***************************************************************************************************************************/
public RotateLabel(Printer.Text text)
{
super(text.getText());
this.rotate = text.getRotate();
this.width = Printer.getMetrics(text).stringWidth(text.getText());
}
/****************************************************************************************************************************
* Überschriebene paintComponent Methode für das drehen und antianalising
* @param g Graphics
***************************************************************************************************************************/
public void paintComponent(Graphics g)
{
try{
Graphics2D g2d = (Graphics2D) g;
if(ANTIANALISING)
{
RenderingHints qualityHints = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
qualityHints.put(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
g2d.setRenderingHints(qualityHints);
}
AffineTransform origXform = g2d.getTransform();
AffineTransform newXform = (AffineTransform)(origXform.clone());
//center of rotation is center of the panel
int xRot = this.getWidth()/2;
int yRot = this.getHeight()/2;
newXform.rotate(Math.toRadians(rotate), xRot, yRot);
g2d.setTransform(newXform);
//draw image centered in panel
super.paintComponent(g2d);
g2d.setTransform(origXform);
}catch(Exception ex)
{
ex.printStackTrace(System.out);
}
}
}