java吧 关注:1,286,728贴子:12,814,195
  • 2回复贴,共1

有没有会java的好心人呀~ 帮忙改一改吧~ 拜托了~

只看楼主收藏回复

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.imageio.ImageIO;
import javax.swing.*;
public class PlayerPanel extends JPanel implements Runnable{
private List<Image> imageList = new ArrayList<Image>();
Thread thread;
int timeToSleep = 400;//播放速度
int x=0;//设计计算帧数的计数器
public PlayerPanel(String directory) {
File dirObj = new File(directory);
String[] fileArray = dirObj.list();
Image image = null;
for (int i = 0; i < fileArray.length; i++) {
try {
image = ImageIO.read(new FileInputStream(directory + fileArray[i]));
imageList.add(image);//加载图片
} catch (Exception e) {
e.printStackTrace();
}
}
setSize(image.getWidth(this),image.getHeight(this));
}
public void play(int speed){
Graphics2D g2 = (Graphics2D) this.getGraphics();
Image img;
int num=0;
while (true){
img=(Image)imageList.get(num%imageList.size());
x = num * speed%(getWidth()+img.getWidth(null));
g2.drawImage(img, x, 0,this);
num++;
try {
Thread.sleep(timeToSleep);
} catch (InterruptedException ex) {
}
repaint();
}
}
public void run() {
play(20);// 播放动画
}
public void start() {
thread = new Thread(this);
try {
thread.start(); // 启动线程
} catch (Exception e) {
}
}
}
import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import javax.swing.*;
public class PlayerFrame extends JFrame implements ActionListener {
PlayerPanel playerPanel = new PlayerPanel("./images/");
JPanel buttonPanel = new JPanel();
JButton startButton;
public PlayerFrame(String s) {
super(s);
setLayout(new BorderLayout());
startButton = new JButton("开始");
startButton.addActionListener(this);
buttonPanel.add(startButton);
add(playerPanel, BorderLayout.CENTER);
add(buttonPanel, BorderLayout.SOUTH);
setBackground(getBackground());
setSize(playerPanel.getWidth()*5, playerPanel.getHeight()+300);
this.setBackground(Color.GRAY);
setVisible(true);
validate();
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e) {
JButton sourceButton = (JButton) e.getSource();
if (sourceButton == startButton) {
playerPanel.start();
}
}
public static void main(String args[]) {
PlayerFrame pf = new PlayerFrame("动画播放器");
}
}
这个做完以后效果有点儿闪,我还想在后面加个背景图片,也加不进去~
有咩有高手帮忙改一下,加个背景图片,再把下面这个风车的代码一起加进去~
import java.awt.*;
import java.awt.geom.AffineTransform;
import java.awt.geom.Arc2D;
public class FPanel extends Canvas
{
FPanel()
{
setBackground(new Color(170,223,225));
}
public void paint(Graphics g)
{
Graphics2D g2=(Graphics2D)g;
Font f1=new Font("隶书",Font.BOLD,20);
g2.setFont(f1);
for(int i=0;i<49;i++)
{
Arc2D a1=new Arc2D.Double(100,0,200,200,270,180,Arc2D.PIE);
Arc2D a2=new Arc2D.Double(200,100,200,200,180,180,Arc2D.PIE);
Arc2D a3=new Arc2D.Double(100,200,200,200,90,180,Arc2D.PIE);
Arc2D a4=new Arc2D.Double(0,100,200,200,0,180,Arc2D.PIE);
GradientPaint gp1=new GradientPaint(200, 200,Color.red , 200,300,new Color(255,206,206),true);
GradientPaint gp2=new GradientPaint(200, 200,Color.yellow , 300,200,new Color(255,255,179),true);
GradientPaint gp3=new GradientPaint(200, 200,Color.green , 200,300,new Color(203,255,140),true);
GradientPaint gp4=new GradientPaint(200, 200,Color.BLUE , 300,200,new Color(119,187,255),true);
g2.setPaint(gp1);
g2.fill(a1);
g2.setPaint(gp2);
g2.fill(a2);
g2.setPaint(gp3);
g2.fill(a3);
g2.setPaint(gp4);
g2.fill(a4);
AffineTransform trans=new AffineTransform();
trans.rotate(30*i*Math.PI/180, 200, 200);
g2.setTransform(trans);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
g2.clearRect(0, 0, 400, 400);
}
}
}
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class E extends Frame
{
FPanel c=new FPanel();
public E(String s)
{
super(s);
setLayout(new BorderLayout());
add(c,BorderLayout.CENTER);
setSize(800,800);
setVisible(true);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
public class Test {
public static void main(String[] args) {
new E(" ");
}
}


1楼2013-12-21 18:41回复
    小房子的图片是背景,怎么加进去呀!~ 小人的做出来是简单的动画的效果


    3楼2013-12-21 18:55
    回复
      2025-11-10 09:00:59
      广告
      不感兴趣
      开通SVIP免广告
      帮顶


      来自Android客户端4楼2013-12-21 19:41
      回复