java实现浮窗效果
时间: 2023-11-07 22:04:42 浏览: 223
简单实现拖拽功能——悬浮窗效果
浮窗效果通常用于实现一些悬浮在界面之上的小工具或提醒,下面是一个简单的 Java 实现浮窗效果的示例代码:
```java
import javax.swing.*;
import java.awt.*;
public class FloatingWindow extends JFrame {
private Point initialClick;
public FloatingWindow() {
super("Floating Window");
setLayout(new BorderLayout());
setSize(200, 200);
JPanel panel = new JPanel();
panel.setBackground(Color.WHITE);
add(panel, BorderLayout.CENTER);
// 添加鼠标事件监听器,实现拖动功能
addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(java.awt.event.MouseEvent evt) {
initialClick = evt.getPoint();
getComponentAt(initialClick);
}
});
addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
public void mouseDragged(java.awt.event.MouseEvent evt) {
int thisX = getLocation().x;
int thisY = getLocation().y;
int xMoved = (thisX + evt.getX()) - (thisX + initialClick.x);
int yMoved = (thisY + evt.getY()) - (thisY + initialClick.y);
int X = thisX + xMoved;
int Y = thisY + yMoved;
setLocation(X, Y);
}
});
}
public static void main(String[] args) {
FloatingWindow window = new FloatingWindow();
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setUndecorated(true);
window.setBackground(new Color(0, 0, 0, 0));
window.setVisible(true);
}
}
```
上述代码中,首先创建了一个 JFrame 窗口,并添加了一个 JPanel 组件。在 JFrame 窗口中添加了鼠标事件监听器,实现了窗口的拖动功能。最后通过 setUndecorated(true) 方法和 setBackground(new Color(0, 0, 0, 0)) 方法设置了窗口的样式。
需要注意的是,浮窗效果的实现需要使用 setUndecorated(true) 方法,这将会使 JFrame 窗口的标题栏和边框都消失,同时也需要设置 setBackground(new Color(0, 0, 0, 0)) 方法将窗口的背景设置为透明。
阅读全文