我正在从事我的大学项目......我对 jlabel 的轮换有疑问。我想旋转的 JLabel 是一艘船。标签应根据船的航向旋转。我将标题显示在单独的 jpanel 上 - 我在启动时绘制模拟控件,稍后使用 getGraphics() 绘制控件的“手”(或箭头或其他)。这是一些代码:
public void drawHeading (int getheading) {
int course = getheading;
int x,y;
double radians;
// appendEvent (" heading " + Integer.toString(course));
if (course != oldHeading){
//HeadingControl is the jpanel where I draw the analogue heading control
HeadingControl.validate();
HeadingControl.repaint();
}
oldHeading = course;
radians = Math.toRadians(course) - Math.PI/2;
//this puts info in textfield
appendEvent (" course " + Integer.toString(course));
x = 120 + (int)(70*Math.cos(radians));
y = 80 + (int)(70*Math.sin(radians));
//i get the graphics .. then add the "hand"
Graphics2D gfx = (Graphics2D) HeadingControl.getGraphics();
gfx.setColor(Color.red);
gfx.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
gfx.drawLine(x, y, 120, 80);
gfx.drawLine(x, y, 120, 80);
gfx.drawLine(x, y, 120, 80);
AffineTransform tx = new AffineTransform();
tx.rotate(Math.toRadians(90));
//the label is not rotated, tried ship.rotate(radians) (gfx2.rotate(radians) ... //didn't work
Graphics2D gfx2 = (Graphics2D) ship.getGraphics();
gfx2.transform(tx);
}
IDE = NetBeans 7.2 .. 我读过 getGraphics 不应该使用,但是...我认为这种更改为时已晚,项目太大.. netbeans 在编辑时设置了一些限制初始化组件() ..
问题是:标签没有旋转!!!第一 - 为什么它不旋转,以及如何旋转它(我想继续使用 getGraphics,使用重写的 paintComponent 方法等重新重建我的项目将非常耗时......