java swing编程中,有没有方法能让按钮旋转一个角度
2个回答
展开全部
最简单也是推荐的方法:找美工(或者自己用photoshop)把图片旋转到指定角度,存为png,然后在程序中使用。这样能够满足美学的要求,同时还减少了程序运行时对CPU的消耗
如果一定要自己做,那么就复杂了,需要重写按钮的paintComponent方法,对graphics进行变换处理,示例代码如下:
public class TRotateButton extends JButton {
private double theta = 0;
public TRotateButton(String text, int theta) {
super(text);
this.theta = theta;
}
@Override
protected void paintComponent(Graphics g) {
int w = getWidth(), h = getHeight();
double theta = Math.toRadians(this.theta);
Graphics2D g2d = (Graphics2D) g;
// 消除锯齿
RenderingHints renderingHints = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
renderingHints.put(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
renderingHints.put(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON);
g2d.setRenderingHints(renderingHints);
g2d.rotate(theta, w / 2, h / 2);
super.paintComponent(g);
}
public static void main(String[] args) {
JFrame jf = new JFrame("测试旋转按钮");
jf.setSize(300, 300);
jf.getContentPane().add(new TRotateButton("旋转按钮", 45));
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询