我有一个 JDialog 显示在屏幕上,我想根据条件模拟它的移动(从一个位置拖动到另一个位置)。有什么办法可以做到吗?
JDialog
xbp102n01#
请参阅下面的这段代码。我刚刚测试过,效果很好。这只是一个概念的证明。
private void startDialog() { final JDialog d = new JDialog(this, "Test", true); d.getContentPane().add(new JLabel("Something")); d.setBounds(100, 100, 400, 300); Thread t = new Thread(new Runnable() { public void run() { for (int i = 0; i < 50; i++) { SwingUtilities.invokeLater(new Runnable() { public void run() { Point p = d.getLocation(); d.setLocation(p.x + 10, p.y + 10); } }); try { Thread.sleep(100); } catch (InterruptedException e) { // ignore } } } }); t.start(); d.setVisible(true); }
您可以自己改进代码:使用 Timer 而不是普通的 Thread 调整睡眠时间和位置跳跃等等只要从任何swing应用程序调用这个方法,它就会工作。
Timer
Thread
1条答案
按热度按时间xbp102n01#
请参阅下面的这段代码。我刚刚测试过,效果很好。这只是一个概念的证明。
您可以自己改进代码:
使用
Timer
而不是普通的Thread
调整睡眠时间和位置跳跃等等只要从任何swing应用程序调用这个方法,它就会工作。