旋转带有设置图标的 JLabel(java)

问题描述 投票:0回答:1

我有一个 JLabel,我已经为它设置了一个图标。我想通过单击一个按钮(我已经实现了 KeyListener 接口)逐渐旋转标签(并将图像设置为标签)。有没有这样的方法或方法来做到这一点。这是一些代码:

lbTank.setBounds(width / 12 + width / 36 , height / 10 + height / 30, width / 36 , height / 30);
actionPanel.setLayout(null);
actionPanel.add(lbTank);
lbTank.setVisible(true);

tank = new ImageIcon(path to the file);
Image img = tank.getImage();
Image scaledImg = img.getScaledInstance(lbTank.getWidth(), lbTank.getHeight(), Image.SCALE_SMOOTH);
ImageIcon scaledBall = new ImageIcon(scaledImg);
lbTank.setIcon(scaledBall);

如何旋转标签(和里面的图标)?

................................................

java image rotation icons jlabel
1个回答
0
投票

“旋转”Swing 组件将不起作用。组件始终为矩形,具有左上角和右下角(位置和大小 - 角度)。

但是在绘制图像时你可以应用一些旋转。它涉及通过覆盖某些组件的 paintComponent() 方法来自定义绘画。在那里找到你想要绘制的坐标和角度,然后创建一个匹配的 AffineTransform 并在 drawImage().

中绘制期间使用它

请注意,您覆盖了 paintComponent(Graphics g) 方法,但在运行时您必须将 Graphics 转换为 Graphics2D,以便您可以访问所有需要的方法。

© www.soinside.com 2019 - 2024. All rights reserved.