给JButton加一个阴影
时间: 2024-05-13 21:14:50 浏览: 14
您可以使用 Java Swing 中的 Graphics 类和 Graphics2D 类来为 JButton 添加阴影效果。以下是一个简单的示例代码:
```
import javax.swing.*;
import java.awt.*;
public class ShadowButton extends JButton {
private static final long serialVersionUID = 1L;
public ShadowButton(String text) {
super(text);
setOpaque(false); // 设置 JButton 为透明
}
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g.create();
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); // 开启抗锯齿
int width = getWidth();
int height = getHeight();
// 绘制阴影
int shadowWidth = 5;
g2.setColor(new Color(0, 0, 0, 50));
g2.fillRoundRect(shadowWidth, shadowWidth, width - shadowWidth * 2, height - shadowWidth * 2, 10, 10);
// 绘制按钮
g2.setColor(getBackground());
g2.fillRoundRect(0, 0, width - shadowWidth, height - shadowWidth, 10, 10);
g2.dispose();
super.paintComponent(g);
}
}
```
您可以使用以下代码将此按钮添加到 JFrame 中:
```
JFrame frame = new JFrame();
frame.setSize(400, 400);
frame.setLayout(new BorderLayout());
JButton button = new ShadowButton("Click me!");
frame.add(button, BorderLayout.CENTER);
frame.setVisible(true);
```
这将在按钮周围添加一个阴影效果。您可以根据需要调整阴影的大小和颜色。
相关推荐
![crx](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)