JTextField vertikal drehen
Ich habe eine Reihe von Fragen gesehen, in denen gefragt wird, wie ein JLabel oder ein Bild in einem beliebigen Winkel gedreht werden kann. Alles, was ich tun muss, ist, mein Textfeld um 90 Grad zu drehen, aber ich habe keinen einfacheren Weg speziell für diesen Winkel gefunden. Ich dachte, ich hätte die Antworten richtig kopiert, aber mein Textfeld dreht sich nicht.
Hier ist eine SSCCE von dem, was ich tue:
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
public class VerticalRotationSSCCE {
private static class VerticalTextField extends JTextField {
private static final long serialVersionUID = 1L;
public VerticalTextField(String text) {
super(text);
}
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
int cx = getWidth() / 2;
int cy = getHeight() / 2;
g2.rotate(1/2 * Math.PI, cx, cy);
super.paintComponent(g2);
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFrame frame = new JFrame();
frame.getContentPane().add(new VerticalTextField("Foo"));
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});
}
}
Was fehlt mir in den Antworten zum Drehen von Komponenten?