【发布时间】:2012-11-05 04:59:01
【问题描述】:
我尝试每秒钟将它向右移动一次(x++)
我尝试用线程移动它..
- 怎么办? (并且可以看到它每秒都在移动)
- 还有其他不使用线程的方法吗?
- 我应该使用什么布局管理器?
我试试..
public class help {
JFrame frame = new JFrame();
JLabel label = new JLabel("target");
public help() {
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setSize(800,600);
frame.setLayout(new GridLayout());
frame.add(label);
label.setPreferredSize(new Dimension(100,100));
label.setLocation(400, 300);
frame.getContentPane().validate();
frame.repaint();
frame.setVisible(true);
mysterious();
}
void mysterious(){
////////////////////////////////
// part of edit responding David kroukamp
Thread t = new Thread(new Runnable() {
@Override
public void run() {
try{
for (int z=0; z<10; z++){
label.setLocation((label.getLocationOnScreen().x+10), label.getLocationOnScreen().y);
Thread.sleep(1000);
}
}catch(Exception ae){
}
}
});
t.start();
//////////////////////////////
}
public static void main(String[]args){
new help();
}
}
非常感谢您的任何帮助
【问题讨论】:
标签: java multithreading swing jlabel