自已绘制的窗囗的拖动问题?在线等,高手速进!

jordan1 2006-04-06 02:05:10
我做的一个程序由于界面不太美观,我决定自已绘制窗囗,也就是用setUndecorated(true)去掉窗囗装饰,然后整个窗囗边框都是绘图完成,完成后窗囗不能像windows窗囗那样用鼠标按着标题栏拖动位置。


我不知道怎么能让这个窗囗实现这个功能。
请高手指点!


up有分!
...全文
246 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bgceft 2006-04-06
  • 打赏
  • 举报
回复
楼上正解
mq612 2006-04-06
  • 打赏
  • 举报
回复
import java.awt.event.MouseMotionAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;
import javax.swing.JFrame;
import javax.swing.JPanel;

/**
* 利用鼠标监听解决无标题窗体的移动问题
*/
public class Test {
private JFrame frame = null;
JPanel pane = null;
int mouseX = 0;
int mouseY = 0;

public Test() {
frame = new JFrame();
frame.setUndecorated(true);
pane = (JPanel) frame.getContentPane();

pane.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent mouseEvent) {
if (mouseEvent.getButton() == mouseEvent.BUTTON1) {
mouseX = mouseEvent.getX();
mouseY = mouseEvent.getY();
}
}
});

pane.addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
if (e.getModifiers() == e.BUTTON1_MASK) {
frame.setLocation(frame.getX() + e.getX() - mouseX,
frame.getY() + e.getY() - mouseY);
}
}
});

frame.setSize(300, 200);
frame.setVisible(true);
}

public static void main(String args[]) {
Test t = new Test();
}

}
ilovejavaverymuch 2006-04-06
  • 打赏
  • 举报
回复
这样你可以在窗囗的任何位置按下鼠标进行搬运
ilovejavaverymuch 2006-04-06
  • 打赏
  • 举报
回复
加鼠标监听,然后,

Point point;

public void mousePressed(MouseEvent e){ ////按下鼠标时记录按下点在窗囗的坐标
pressPoint=new Point(e.getX(),e.getY());
}


public void mouseDragged(MouseEvent e){/////窗囗setLocation
Point point=getLocationOnScreen();   /////窗囗在屏幕上的位置

this.setLocation(point.x+e.getX()-pressPoint.x,point.y+e.getY()-pressPoint.y);
}
jordan1 2006-04-06
  • 打赏
  • 举报
回复
没人知道吗?
jordan1 2006-04-06
  • 打赏
  • 举报
回复
哪位高手知道的话,说得详细一点好吗?
jordan1 2006-04-06
  • 打赏
  • 举报
回复
楼上的,好像从鼠标事件中得到的坐标是相对于这个窗囗的吧?

而我需要的是这个窗囗相对于电脑屏幕的坐标啊?
java_augur 2006-04-06
  • 打赏
  • 举报
回复
add a mouse event listener on your windows.
just capure the mouse events to control its behavior.

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧