问题描述
我正在尝试与2位玩家进行LUDO游戏。我有4种方法-绘画,类构造函数,customPainting和main方法。问题在于这些棋子出现在棋盘上,但没有在其他地方被吸引。另外,如果可能的话,请给我一个思路,从上一点中删除典当图像。在绘画方法中,我为LUDO制作了一块木板。以下是课程字段。注意-这只是一个试用代码,不是我真正的代码。我已经复制粘贴并对其进行了一些编辑,因此请不要介意我的代码语法或那里的小错误。另外,我没有显示导入语句,所以请不要以为是问题。
public class Trial extends JPanel implements ActionListener{
public JButton jButton1;
public JButton jButton2;
public JButton jButton3;
int result;
public JRadioButton rb1,rb2,rb3,rb4;
BufferedImage imageblue1 = null;
BufferedImage imageblue2 = null;
BufferedImage imageblue3 = null;
BufferedImage imageblue4 = null;
BufferedImage imagegreen1 = null;
BufferedImage imagegreen2 = null;
BufferedImage imagegreen3 = null;
BufferedImage imagegreen4 = null;
Point[] bluePath;
Point[] greenPath;
int counter;
public void paint(java.awt.Graphics g) {...}
类的构造函数在下面。
Trial(){
setLayout(null);
bluePath = new Point[57];
bluePath[0] = new Point(286,600);
bluePath[1] = new Point(286,555);
bluePath[2] = new Point(286,510);
bluePath[3] = new Point(286,465);
bluePath[4] = new Point(286,420);
bluePath[5] = new Point(241,375);
// Green pawns' Path
greenPath = new Point[57];
greenPath[0] = new Point(371,61);
greenPath[1] = new Point(371,106);
greenPath[2] = new Point(371,151);
greenPath[3] = new Point(371,196);
greenPath[4] = new Point(371,241);
greenPath[5] = new Point(416,286);
try {
setLayout(null);
jButton1 = new JButton("Dice");
jButton1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (counter == 0 || counter == 2){
counter = 1;
} else {
counter = 2;
}
result = ((int) Math.round(Math.random() * 5)) + 1;
AttributedString atString = new AttributedString(String.valueOf(result));
getGraphics().drawString(atString.getIterator(),925,175);
}
});
add(jButton1);
jButton2 = new JButton("Clear Dice");
jButton2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
java.awt.Graphics gc = getGraphics();
gc.setColor(Color.white);
gc.fillRect(895,127,70,70);
}
});
add(jButton2);
// Blue Pawns
imageblue1 = ImageIO.read(new File("C:\\Ludo Program\\src\\com\\company\\Blue1.PNG"));
imageblue2 = ImageIO.read(new File("C:\\Ludo Program\\src\\com\\company\\Blue2.PNG"));
imageblue3 = ImageIO.read(new File("C:\\Ludo Program\\src\\com\\company\\Blue3.PNG"));
imageblue4 = ImageIO.read(new File("C:\\Ludo Program\\src\\com\\company\\Blue4.PNG"));
// Green Pawns
imagegreen1 = ImageIO.read(new File("C:\\Ludo Program\\src\\com\\company\\Green1.PNG"));
imagegreen2 = ImageIO.read(new File("C:\\Ludo Program\\src\\com\\company\\Green2.PNG"));
imagegreen3 = ImageIO.read(new File("C:\\Ludo Program\\src\\com\\company\\Green3.PNG"));
imagegreen4 = ImageIO.read(new File("C:\\Ludo Program\\src\\com\\company\\Green4.PNG"));
rb1 = new JRadioButton("ONE");
rb2 = new JRadioButton("TWO");
rb3 = new JRadioButton("THREE");
rb4 = new JRadioButton("FOUR");
ButtonGroup bgroup = new ButtonGroup();
bgroup.add(rb1);
bgroup.add(rb2);
bgroup.add(rb3);
bgroup.add(rb4);
jButton3 = new JButton("Move");
jButton3.setBounds(875,525,125,50);
add(rb1);
add(rb2);
add(rb3);
add(rb4);
add(jButton3);
jButton3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (rb1.isSelected()){
if (counter == 1){
customPainting("blue",getGraphics());
} else {
customPainting("green",getGraphics());
}
} else if (rb2.isSelected()){
}else if (rb3.isSelected()){
}else if (rb4.isSelected()){
}
}
});
} catch (Exception e){
e.printStackTrace();
}
}
customPainting方法在下面。
public void customPainting(String colorname,java.awt.Graphics g){
super.paintComponent(g);
if (colorname == "blue"){
g.drawImage(imageblue1,bluePath[result - 1].x,bluePath[result - 1].y,this);
} else if (colorname == "green"){
g.drawImage(imagegreen1,greenPath[result - 1].x,greenPath[result - 1].y,this);
}
paint(g);
Trial();
}
下面是主要方法的最后一种方法。
public static void main(String[] args) {
JFrame frame = new JFrame("LUDO");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final Trial trialObject = new Trial();
frame.add(trialObject);
frame.setSize(1186,750);
frame.setResizable(false);
frame.setVisible(true);
}
我是初学者。因此,任何帮助都会对我有很大帮助。
谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)