当鼠标拖动jframe标题栏移动时,我想实现那个拖动的方法,无奈找了半天找不到接口。想做一个例子,当鼠标拖动jframe标题栏移动时,弹个框出来请大侠们赐教。。
解决方案 »
- 请教一道搜狗笔试题——计算算法的复杂度
- 请教高手,线程互斥怎么没起作用???
- 为什么编译JApplet类时,会生成两个 class。
- 关于TimerTask 问题
- hibernate 多对多问题
- 请教java api里的String类的replace(char,char)方法
- 大家来帮我看看这道题错在呢?
- 我是新手,问一个笨问题.
- Java编译器为什么会允许2个不相关的接口之间进行强制转换
- JDK目录下有bin、lib、jre文件夹,而其中的jre文件夹下又有bin、lib--------有什么不同啊________________________
- 关于递归算法问题
- JavaScript写的应用程序运行时出现错误,求高手指点。
import java.awt.event.*;public class Test
{
public static void main(String[] args)
{
final JFrame frame = new JFrame();
frame.setSize(800, 600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
Thread thread = new Thread(new Runnable() {
public void run() {
int x = frame.getX();
int y = frame.getY();
int nextX = x;
int nextY = y;
while (true) {
nextX = frame.getX();
nextY = frame.getY();
if (x != nextX || y != nextY) {
JOptionPane.showMessageDialog(frame, "你在拖动窗口!");
}
x = nextX;
y = nextY;
try {
Thread.sleep(100);
} catch (Exception ex) {
}
}
}
});
thread.start();
}
}没别的办法了,凑合着用吧。
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JDialog;public class MoveEventOccur{
public static void main(String[] args) {
java.awt.EventQueue.invokeLater(new Runnable(){
@Override public void run(){
final JFrame frame = new JFrame("Mmmm");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setPreferredSize(new Dimension(400,300));
frame.setLocationRelativeTo(null);
final JOptionPane optionPane = new JOptionPane("you've move the frame");
final JDialog messageDialog = optionPane.createDialog(frame,"Message");
messageDialog.setModalityType(java.awt.Dialog.ModalityType.APPLICATION_MODAL);
messageDialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
frame.addComponentListener(new ComponentAdapter(){ @Override public void componentMoved(ComponentEvent e){
if(messageDialog.isShowing()) return; //否则弹出许多对话框
messageDialog.setVisible(true);
}
}); frame.pack();
frame.setVisible(true);
}
});
}
}