能提示一个java的悬浮窗代码示例吗
时间: 2024-05-03 22:23:24 浏览: 7
以下是一个简单的 Java 悬浮窗代码示例:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class FloatingWindow extends JFrame implements MouseListener {
private static final long serialVersionUID = 1L;
private JPanel panel;
private JLabel label;
private int mouseX, mouseY;
public FloatingWindow() {
super("悬浮窗");
setSize(200, 100);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setUndecorated(true);
setOpacity(0.7f);
setLocationRelativeTo(null);
panel = new JPanel();
panel.setBackground(Color.YELLOW);
label = new JLabel("这是一个悬浮窗");
label.setHorizontalAlignment(SwingConstants.CENTER);
panel.add(label);
addMouseListener(this);
add(panel);
setVisible(true);
}
public static void main(String[] args) {
new FloatingWindow();
}
@Override
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
dispose();
}
}
@Override
public void mousePressed(MouseEvent e) {
mouseX = e.getX();
mouseY = e.getY();
}
@Override
public void mouseReleased(MouseEvent e) {
// do nothing
}
@Override
public void mouseEntered(MouseEvent e) {
// do nothing
}
@Override
public void mouseExited(MouseEvent e) {
// do nothing
}
@Override
public void mouseDragged(MouseEvent e) {
int x = e.getXOnScreen();
int y = e.getYOnScreen();
setLocation(x - mouseX, y - mouseY);
}
@Override
public void mouseMoved(MouseEvent e) {
// do nothing
}
}
```
该代码创建了一个悬浮窗,其中包含一个黄色的面板和一个标签。可以通过拖动窗口来移动悬浮窗,也可以通过双击来关闭窗口。悬浮窗使用了 `setUndecorated(true)` 方法来隐藏窗口边框和标题栏,使用了 `setOpacity(0.7f)` 方法来设置窗口的不透明度。悬浮窗实现了 `MouseListener` 和 `MouseMotionListener` 接口来处理鼠标事件,以便能够拖动窗口。