[英]Java-How to auto move window in Jframe
我的程序有一個小問題:我想在有代碼的情況下及時獲取自動移動窗口:
package simpleFrame;
import java.awt.*;
import java.util.TimerTask;
import javax.swing.*;
public class Trololo
{
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
JFrame frame = new SizedFrame();
frame.setUndecorated(false);
frame.setTitle("SizedFrame");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
System.out.println("About to schedule task.");
new ReminderBeep(5);
System.out.println("Task scheduled.");
}
});
}
}
class SizedFrame extends JFrame
{
public SizedFrame()
{
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
int screenHeight = screenSize.height;
int screenWidth = screenSize.width;
setSize(screenWidth / 2, screenHeight / 2);
setBounds(500,500,screenWidth/2,screenHeight/2);
}
}
class ReminderBeep {
Toolkit toolkit;
java.util.Timer timer;
public ReminderBeep(int seconds) {
toolkit = Toolkit.getDefaultToolkit();
timer = new java.util.Timer();
timer.schedule(new RemindTask(), seconds * 1000);
}
class RemindTask extends TimerTask {
SizedFrame window = new SizedFrame();
public void run() {
window.setBounds(900,900,500,600);
toolkit.beep();
System.out.println("ok");
}
}}
我有一個工作的計時器:它在命令提示符下顯示“ ok”,但窗口不移動:/如何獲得工作?
在main()方法中,創建一個SizedFrame並顯示它。 然后,您啟動一個計時器。
當計時器觸發時,您將創建另一個SizedFrame,但不顯示它。 然后,在未顯示的SizedFrame上設置邊界。 您不會調整正在顯示的SizedFrame的大小。
您必須通過刷新tem ^ late來重新生成表單(窗格/幀),然后將其拉回(重新驗證),這樣它就會移動
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.