如何自动将按钮移向另一个按钮?

时间:2015-12-15 07:02:12

标签: java button sleep move

我想自动将按钮移向另一个按钮。请帮帮我解决这个我刚刚学会睡眠的方法。可能会出现一些问题

import javax.swing.*;
import java.awt.*;
public class tr extends JFrame
{
public static void main(String []args)
{
JFrame f1=new JFrame("Hit & Run");
JPanel p1=new JPanel();
JButton mv = new JButton();
JButton hit=new JButton("Hit It");
f1.getContentPane().add(p1);
int x;
for(x=0;x<=600;x++)
{ try{
Thread.sleep(50); 
}
catch(InterruptedException e)
{
System.err.println("sleep exception");
}
mv.setBounds(x,220,53,35);
}
hit.setBounds(680,30,90,500);
p1.setBackground(Color.black);

hit.setBackground(Color.green);
mv.setBackground(new Color(255,204,0));
p1.setBackground(Color.black);
p1.setLayout(null);
p1.add(mv);
p1.add(hit);

f1.setVisible(true);
f1.setSize(800,600);
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

1 个答案:

答案 0 :(得分:0)

使用您当前的代码,您的程序会睡眠很多,甚至没有完成创建窗口。首先,永远不要将你的GUI线程发送到睡眠状态,否则你的窗口会在它应该醒着并与用户交互时睡觉 要做你想做的事,你需要启动另一个执行按钮移动的线程 因此,请从初始化代码中取出for循环,并在最后一行下添加以下内容。

new Thread(new Runnable(){
    @Override
    public void run() {
        int x;
        for(x=0;x<=600;x++)
        {           
            try{
                Thread.sleep(50); 
            }
            catch(InterruptedException e)
            {
                System.err.println("sleep exception");
            }
            mv.setBounds(x,220,53,35);
        }
    }
}).start();