swing 实现自定义可变颜色的自定义按钮

看过《swing 也惊艳》后,大有感触,于是自已也写了一个自定义圆边矩形按钮,但总觉得这种写法有问题,不知道那种可变颜色的面板,比如QQ,怎样实现,我这种方法,只是将所有的颜色方案,全部保存起来,然后给绘出来的按钮加一个监听,每按一下选择下一种颜色。

源码http://download.csdn.net/source/1481402 请有写过自定义组件的高手,看看,这样一种设计方法,有没有问题。

效果图

    

图片

代码实在太长,就不粘了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
自定义 Swing 窗口的标题栏,您可以使用以下步骤: 1. 创建一个继承自 JFrame 的新类,用于表示您的自定义窗口。 ```java import javax.swing.*; import java.awt.*; public class CustomFrame extends JFrame { // 在这里添加您的自定义窗口组件和方法 } ``` 2. 在构造函数中设置窗口的属性,包括标题、大小、关闭操作等。 ```java public CustomFrame() { // 设置标题 setTitle("Custom Title Bar"); // 设置窗口大小 setSize(500, 300); // 设置窗口关闭操作 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 其他属性设置... } ``` 3. 使用 setUndecorated(true) 方法去除默认的窗口装饰(包括标题栏和边框)。 ```java setUndecorated(true); ``` 4. 创建一个 JPanel 作为自定义标题栏,并将其添加到窗口中。 ```java JPanel titleBarPanel = new JPanel(); // 设置标题栏的背景颜色、布局等 // 添加标题栏上的按钮、标签等组件 // ... add(titleBarPanel, BorderLayout.NORTH); ``` 5. 通过鼠标事件监听器来实现拖动窗口的功能。 ```java titleBarPanel.addMouseListener(new MouseAdapter() { private Point initialClick; public void mousePressed(MouseEvent e) { initialClick = e.getPoint(); getComponentAt(initialClick); } }); titleBarPanel.addMouseMotionListener(new MouseMotionAdapter() { @Override public void mouseDragged(MouseEvent e) { int thisX = getLocation().x; int thisY = getLocation().y; int xMoved = (thisX + e.getX()) - (thisX + initialClick.x); int yMoved = (thisY + e.getY()) - (thisY + initialClick.y); int X = thisX + xMoved; int Y = thisY + yMoved; setLocation(X, Y); } }); ``` 这样,您就可以通过自定义 JPanel 来实现自定义的标题栏效果,并且可以使用鼠标事件来拖动窗口。您可以根据需要添加额外的组件和样式来定制您的标题栏。 希望这些信息对您有帮助!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值