簡體   English   中英

Java-如何在Jframe中自動移動窗口

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM