【发布时间】:2015-03-28 19:22:28
【问题描述】:
我有一个简单的 Atari 突破程序,长话短说,我的一个通电功能是允许用户在几秒钟内调整窗口大小,然后再次使窗口无法调整大小。一切正常,窗口从不可调整大小变为可调整大小几秒钟。应该发生的是,几秒钟后,窗口应该停止接受调整窗口大小的输入(IE:不应该调整大小)。唯一的问题是,每当它应该设置为不可调整大小时,如果您一直在窗口上拖动光标来调整它的大小,它就会不断调整大小。它只会在您放开窗口后激活窗口的不可调整大小状态。我的问题是,一旦计时器到时,我该如何在您放开窗口、取消调整大小的控制权之前实现这一点?
P.S:我想编程以在调用命令后立即阻止您调整窗口大小,而不是等待您放开鼠标。有什么建议吗?
这是一个简化的例子:(给你 6 秒的时间来调整窗口大小并进行操作)
package test;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.Timer;
public class Test {
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();
}
}
【问题讨论】: