java - setResizing(false) 不起作用后强制 JFrame 不调整大小

标签 java swing resize

我在让它工作时遇到了一些麻烦。我创建了一个游戏,其中有一个可以让窗口大小调整几秒钟的功能。一切工作正常,窗口从不可调整大小变为可调整大小几秒钟。应该发生的情况是,几秒钟后,窗口应该停止接受用于调整窗口大小的输入(即:不应调整大小)。唯一的问题是,每当它应该设置为不可调整大小时,如果您将光标拖动到窗口上以调整其大小,它会不断调整大小。它只会在您放开窗口后激活窗口的不可调整大小状态。我的问题是,一旦计时器到了,在你放开窗口、取消调整大小的控制之前,我该如何实现这一点?

这是一个简化的情况:(您有 6 秒的时间来调整窗口大小并使用它)

package test;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.Timer;


public class Test {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {        
        JFrame testFrame = new JFrame();
        testFrame.setResizable(true);
        testFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        long endingTime = System.currentTimeMillis() + 6000;
        Timer testTimer = new Timer(100, new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                if((endingTime - System.currentTimeMillis()) < 0){
                    testFrame.setResizable(false);
                }
            }

        });
        testFrame.setVisible(true);
        testTimer.start();
    }

}

最佳答案

使用 Java 的 Robot 类强制释放鼠标。我修改了下面的示例代码:

public static void main(String[] args) {        
    JFrame testFrame = new JFrame();
    testFrame.setResizable(true);
    testFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Timer testTimer = new Timer(6000, new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
                testFrame.setResizable(false);
          Robot r;
          try {
            r = new Robot();
            r.mouseRelease( InputEvent.BUTTON1_DOWN_MASK);
          } catch (AWTException ex) {
            ex.printStackTrace();
          }
        }

    });
    testFrame.setVisible(true);
    testTimer.start();
}

关于java - setResizing(false) 不起作用后强制 JFrame 不调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29325628/

相关文章:

php - 如何使用php调整表格中显示的图像的大小

Qt 无法设置几何图形

java - 如何将给定整数与可能的根进行比较

java - 在 Objective C 中声明变量与 Java 类似

java - 是否可以将 JFrame 放在前面而不是焦点?

ios - 应用 CIFilter 之后,无论我做什么,图像都会变大

java - 带有 SpinnerDateModel 的 JSpinner 不旋转

java - NavigableMap 与 SortedMap?

swing - java中的"Events type"

java - 具有许多 ActionListeners 的 MVC 模式