私の質問はJava2Dでテキストを回転させる方法ではありません。私はそれを行う方法を知っています。私が知らないのは、回転したテキストを「見栄えよく」する方法です。たとえば、PowerPointでテキストボックスを作成して回転すると、回転角度に関係なくテキストがシャープで透明に表示されます。しかし、g2D.drawString()
で描画されたテキストは、0度または90度で大丈夫ですが、他の角度ではそれほど良好ではありません。それをきれいにするか、または鋭くするためにテキストを操作する方法はありますか?もしそうなら、もし誰かが私にこのことをどうやって学ぶべきかを指摘できたら、私はとても感謝しています。回転したテキストをJava2Dでうまく見せる方法
以下は、私が何を話しているかを示す小さなプログラムです。大きなフォントは回転してもそれほど悪くはありませんが、まだまだプロフェッショナルではありません。回転すると小さなフォントがひどいです。
import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
public class RotateTest extends JPanel {
String message = "How does this text look?";
public RotateTest() {
this.setPreferredSize(new Dimension(640, 280));
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2D = (Graphics2D) g;
g2D.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
g2D.setFont(new Font("MyriadPro", Font.BOLD, 20));
g2D.drawString(message, 80, 20);
AffineTransform orig = g2D.getTransform();
double angle = Math.toRadians(7.0);
g2D.rotate(-angle, -10, 80);
g2D.drawString(message, 80, 80);
g2D.setTransform(orig);
angle = Math.toRadians(30.0);
g2D.rotate(-angle, -40, 80);
g2D.drawString(message, 60, 260);
g2D.setTransform(orig);
g2D.setFont(new Font("MyriadPro", Font.BOLD, 12));
g2D.drawString(message, 380, 20);
angle = Math.toRadians(7.0);
g2D.rotate(-angle, -10, 80);
g2D.drawString(message, 380, 120);
g2D.setTransform(orig);
angle = Math.toRadians(30.0);
g2D.rotate(-angle, -40, 80);
g2D.drawString(message, 320, 400);
g2D.setTransform(orig);
}
private void display() {
JFrame f = new JFrame("RotateTest");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(this);
f.pack();
f.setVisible(true);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new RotateTest().display();
}
});
}
}
あなたが表示する任意のコードを持っています:
ここでは、コードですか? – mprabhat