用java线程怎么使用容器JPanel画的图片滚动,最好是有代码,谢谢
展开全部
使用swing的Timer 类, 可以实现控制UI线程, 比如JPanel的移动等
参考代码如下
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;
public class FrameDemo extends JFrame {
SunPanel sp;
Timer timer;
int w = 600;
int h = 400;
int px = w - 20;
int py = h - 20;
public FrameDemo() {
setTitle("太阳窗口");
setSize(w, h);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setResizable(false);
setLayout(null);
sp = new SunPanel();
sp.setBounds(px, py, 58, 58);
add(sp);
timer = new Timer(10, new ActionListener() {//每10毫秒改变一次太阳的位置, 可以自己加快或者放慢,修改毫秒数就可以
public void actionPerformed(ActionEvent e) {
sp.setLocation(px -= 2, py -= 1);// 可以修改成px-=3 ,py-=2等方式来控制每次移动的快慢
if (px <= 0 || py <= 0) {
timer.stop();
}
}
});
timer.start();//开始
}
public static void main(String[] args) {
new FrameDemo().setVisible(true);
}
class SunPanel extends JPanel {
public void paint(Graphics g) {
g.setColor(Color.RED);
g.drawOval(2, 2, 50, 50);
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询