从Java教程:
请注意,
Swing计时器的任务是在事件派发线程中执行的.这意味着任务可以安全地操作组件,但这也意味着任务应该快速执行.如果任务可能需要一段时间才能执行,那么请考虑使用SwingWorker替代或替代计时器.
"快速"是什么意思?我的意思是不准确,不到一分钟很快或者什么?
例如,如果我想用一些面板制作动画(1分钟),通过移动它们,改变它们的透明度......并且用户只是看到面板而不能使用它们(没有我/ O),现在Timer是这种情况的好主意吗?
我可能做错了,所以请善待。我正在开发一个 Java 游戏,我正处于测试角色移动/动画的阶段。
“人”可以在网格上左右上下移动。绘制网格的类是 gamePanel 类。按钮位于 gameControlPanel 类中。
我有一个按钮,可以在网格上生成一个人。然后我有一个按钮可以左右上下移动这个人。
当按下向上移动按钮时,它会从 person 类调用向上移动方法。(目前,我一次只测试一个“人”。)在该方法中是以下代码......
int move = 10;
while(move!=0)
{
setTopLeftPoint(new Point((int)getTopLeftPoint().getX(),
(int)getTopLeftPoint().getY() - 3));
try
{
Thread.sleep(300);
} catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
move-=1;
}
Run Code Online (Sandbox Code Playgroud)
问题是我似乎无法从 Person 类中调用 gamePanel 类的重绘方法。为了解决这个问题,我在 gamePanel 类中创建了一个计时器,它每 20 毫秒重绘一次。
当我在人生成后按下向上按钮时,该按钮保持按下状态,直到完成 while 循环的循环,然后人的圆形表示显示在上面的网格方块中。
我会尽力回答有关此的任何问题。
我在android中创建了一个应用程序.现在我想使用PlayN创建一个Web版本.我想要的是将所有特定于android的代码替换为普通的java代码.在Android版本中我使用Async任务.我可以用什么代替呢?
我有一个 SwingWorker,它在后台执行一些计算(这些操作位于重写的doInBackground()方法中)。所以,我也用这个execute()方法来开始计算。当这些计算完成后我怎样才能得到结果?
当我们同时按下 WIN_HOME+L 键时,窗口被锁定。我们可以找到很多在 VB 中监听窗口锁定事件的好例子。但我正在为 Java 做窗口锁定侦听器。我做了一些研究并制作了一个侦听窗口锁定事件的侦听器程序。它有两个界面和一个带有JFrame的主程序,并使用JNA库。
WindowUser32.java
public interface WindowUser32 extends User32
{ public static final WindowUser32 MYINSTANCE = (WindowUser32) Native.loadLibrary("user32", WindowUser32.class, W32APIOptions.UNICODE_OPTIONS);
public int SetWindowLong(WinDef.HWND hWnd, int nIndex, Callback callback);
}
Run Code Online (Sandbox Code Playgroud)
窗口监听器.java
public interface WindowListener extends StdCallCallback
{
public LRESULT callback(HWND hWnd, int uMsg, WPARAM uParam, LPARAM lParam);
}
Run Code Online (Sandbox Code Playgroud)
和主类LockListener.java
public class LockListener
{
public static void main(String[] args)
{
JFrame frame = new JFrame();
frame.setVisible(true);
HWND hwnd = new HWND();
hwnd.setPointer(Native.getWindowPointer(frame));
Wtsapi32.INSTANCE.WTSRegisterSessionNotification(hwnd, Wtsapi32.NOTIFY_FOR_ALL_SESSIONS);
WindowListener listener = new …Run Code Online (Sandbox Code Playgroud) 我正在使用netbeans 6.8.如果正在播放声音文件,jframe上的按钮在播放声音文件时不起作用.用户仍然可以在播放时按下按钮.我试图找到它,但代码非常复杂.使用Main implements runnable{}
Multithread这个问题.