package animationdemo;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;
public class AnimationDemo extends JFrame {
Image alien;
public AnimationDemo() {
alien = Toolkit.getDefaultToolkit().getImage("alien.png");
MovingMessagePanel messagePannel = new MovingMessagePanel();
messagePannel.alien = this.alien;
Timer timer = new Timer(50, messagePannel);
timer.start();
this.add(messagePannel);
}
public static void main(String[] args) {
AnimationDemo frame = new AnimationDemo();
frame.setTitle("Project 10");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 500);
frame.setVisible(true);
}
}
class MovingMessagePanel extends JPanel implements ActionListener {
public int xCoordinate = 20;
public int yCoordinate = 20;
public int xDir=5;
public int yDir=5;
public Image alien;
public void actionPerformed(ActionEvent e) {
repaint();
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
if (xCoordinate > getWidth()) xDir*=-1;
if (yCoordinate > getHeight()) yDir*=-1;
if (xCoordinate <0) xDir*=-1;
if (yCoordinate <0) yDir*=-1;
xCoordinate += xDir;
yCoordinate += yDir;
g.drawImage(alien,xCoordinate,yCoordinate,this);
}
}
}
我不确定如何解决此错误。我为“会员”创建了一个班级。但我仍然得到错误,说它不包含带2个参数的构造函数。我已经添加了包含错误的代码的第一部分和我创建的应该使其工作的类。
答案 0 :(得分:0)
aMember = new Member(dbReader["FirstName"].ToString(), dbReader["LastName"].ToString());
所以我们假装这些值最终看起来像这样
aMember = new Member("Bill","Gates");
所以不是逗号,也许你需要一起加入这些领域? 或更改您的创作,以便您首先发送它和姓氏,并设置两个字段,因为您可以在班级中选择这两个字段。
答案 1 :(得分:0)
添加一个新构造函数,让您传递名字和姓氏,然后在其中设置属性。目前,您只有一个构造函数接受一个参数,然后设置LastName属性。
public Member(string lname)
{
LastName = lname;
}
//New overloaded constructor for lastname and firstname.
public Member(string lname, string fname)
{
LastName = lname;
FirstName = fname;
}
修改您尝试初始化新成员的代码行:
aMember = new Member(dbReader["LastName"].ToString(), dbReader["FirstName"].ToString());
如果你想把它作为firstName,lastName进行初始化,你可以翻转构造函数参数。
答案 2 :(得分:0)
也许你希望你的Final_Project.Member构造函数为
public Member(string firstName, string lastName)
{
this.firstname = firstName;
this.lastname = lastName;
}
这样可以正常工作。