java swing编程中,有没有方法能让按钮旋转一个角度

 我来答
wh猎人
推荐于2016-06-08 · TA获得超过1125个赞
知道大有可为答主
回答量:1157
采纳率:89%
帮助的人:649万
展开全部

        最简单也是推荐的方法:找美工(或者自己用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);
}
}
jiangzaifu
2014-04-28 · TA获得超过566个赞
知道小有建树答主
回答量:1169
采纳率:0%
帮助的人:437万
展开全部
商业上基本不用了,学这干啥呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式