在…方面
if(boton == cartas[0]){
cartas[0].setLabel(figuras[Memorando.list.get(i)]);
}
在我的代码中,我试图放入一个我之前生成的随机数,但当applet启动时,当我按下按钮时,它会给我一个错误,我想把代码放入所有的按钮,因为我不想要重复的数字,我想要每个按钮随机生成的数字。我希望你能帮助我。
import javax.swing.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Stack;
import java.awt.*;
import java.applet.Applet;
import java.awt.event.*;
import java.util.*;
public class Memorando extends Applet implements ActionListener {
JButton cartas[];
JButton juegoNuevo;
Label marcador;
public static ArrayList<Integer> list = new ArrayList<Integer>();
public static ArrayList<Integer> random() {
ArrayList<Integer> list = new ArrayList<Integer>();
for (int i=0; i<4; i++) {
list.add(new Integer(i));
}
Collections.shuffle(list);
for (int i=0; i<4; i++) {
System.out.println(list.get(i));
}
return list;
}
public void init(){
this.setLayout(new BorderLayout());
this.setBackground(Color.CYAN);
Font appletFont=new Font("Monospased", Font.BOLD, 20);
this.setFont(appletFont);
juegoNuevo=new JButton("Juego nuevo");
juegoNuevo.addActionListener(this);
Panel topPanel=new Panel();
topPanel.add(juegoNuevo);
this.add(topPanel,"North");
cartas=new JButton[8];
Panel panelCentral=new Panel();
panelCentral.setLayout(new GridLayout(2,4));
this.add(panelCentral,"Center");
marcador=new Label("No has ganado aun :(");
this.add(marcador,"South");
for(int i=0;i<8;i++){
cartas[i]=new JButton("*********");
cartas[i].addActionListener(this);
cartas[i].setBackground(Color.WHITE);
panelCentral.add(cartas[i]);
}
}
public void actionPerformed(ActionEvent e) {
JButton boton=(JButton) e.getSource();
String[] figuras=new String[8];
figuras[0]="♥";
figuras[1]="♣";
figuras[2]="♠";
figuras[3]="♦";
if(boton == juegoNuevo){
for(i=0;i<8;i++){
cartas[i].setEnabled(true); cartas[i].setLabel("*********");
cartas[i].setBackground(Color.CYAN);
}
marcador.setText("Juego nuevo");
juegoNuevo.setEnabled(false);
return;
}
if(boton == cartas[0]){
cartas[0].setLabel(figuras[Memorando.list.get(0)]);
}
if(boton == cartas[1]){
int numAleatorio=(int) (Math.random()*4);
cartas[1].setLabel(figuras[numAleatorio]);
}
if(boton == cartas[2]){
int numAleatorio=(int) (Math.random()*4);
cartas[2].setLabel(figuras[numAleatorio]);
}
if(boton == cartas[3]){
int numAleatorio=(int) (Math.random()*4);
cartas[3].setLabel(figuras[numAleatorio]);
}
if(boton == cartas[4]){
int numAleatorio=(int) (Math.random()*4);
cartas[4].setLabel(figuras[numAleatorio]);
}
if(boton == cartas[5]){
int numAleatorio=(int) (Math.random()*4);
cartas[5].setLabel(figuras[numAleatorio]);
}
if(boton == cartas[6]){
int numAleatorio=(int) (Math.random()*4);
cartas[6].setLabel(figuras[numAleatorio]);
}
if(boton == cartas[7]){
int numAleatorio=(int) (Math.random()*4);
cartas[7].setLabel(figuras[numAleatorio]);
}
}
void finDelJuego(){
juegoNuevo.setEnabled(true);
for(int i=0;i<8;i++){
cartas[i].setEnabled(false);
}
}
}
我得到的错误是线程“AWT-EventQueue-1”java.lang.IndexOutOfBoundsException:index:0,size:0中的异常
很难说,因为我们没有关于如何/是否调用所有这些方法的证据,但我可以告诉您,我注意到您有一个成员变量list
,但是在random()
方法中,您声明并使用了一个局部变量,该变量可能涵盖了成员变量。因此,成员变量list
可能保持为空,当您试图在actionperformed()
中访问它时,将使用“empty”成员变量list
,因此任何索引都将越界。
因此,我建议您从Random
方法中删除列表
的声明。
问题内容: 我有一个像这样的数组: 如何将其随机/随机播放? 问题答案: 实际无偏混洗算法是Fisher-Yates(aka Knuth)。
问题内容: 我必须通过Volley Framework提出要求。这是带有JSONObject的POST请求。 我必须传递一个字符串和一个JSONArray ..但是我怎么能呢? 我从这个开始: 如果我尝试使用浏览器,则必须进行以下设置: 问题答案: 您需要先制作一个JSON数组,然后将其存储
我得到了一个充满“项目”的枚举,我想生成枚举中的一个随机项目并将其放入我的清单中,我用数组制作了清单。数组只有10 int的空间。
这只是一个简单的音乐应用程序。在中搜索时,我希望同时搜索并列出作曲家的姓名和歌曲标题。这是我在Firebase中的实时数据库。 我试图在android studio中访问这两个数据库,但ArrayList(=array)中的数据结果始终为空。单击“搜索”按钮时,以下是我在中的kotlin代码。 是否可以访问两个数据库并获取一个没有空值的数组值?我知道,发生得很晚,但是否可以将值放入数组,然后放入适
问题内容: 我有问题来存储的所有值成。这里和是数组的数组。我想将它们的所有值分别存储在和中。的和是字符串的数组。 这是我的尝试,但仅存储每个数组的最后一项。 注意:我已经尝试过了,但是对我不起作用。 问题答案: 为了通用,首先让它成为对象列表 您想要放入对象列表 注意结果列表将包含每个对象,包含的是输入列表。 这种转换将丢失有关哪个对象位于哪个列表中的信息。 您必须遍历。在每个循环中,您都会获得一
问题内容: 我想从字节数组中提取一组坐标到DoubleBuffer中。 以下是如何将一组坐标从主字节数组提取到另一个字节数组的示例。 我的问题是: 如何将geomCoords字节数组放入DoubleBuffer? 还是 可以在不创建geomCoords的情况下将这些数据放入DoubleBuffer中?速度和效率是关键,因此任何捷径或优化都是最欢迎的! 问题答案: 如果您知道字节缓冲区中的8个字节确