※ ChatGPTを利用し、要約された質問です(原文:javaについての質問です。)
JavaのMyTurtleFrameクラスにArraylistを使用して書き換える方法
このQ&Aのポイント
JavaのMyTurtleFrameクラスには、Arraylistを使用して書き換える必要があります。
コメントが書いてある箇所をArraylistに変更することで、turtleListとnumTurtlesを管理できます。
それに応じてaddTurtleメソッドとdelTurtleメソッドも適切に書き換える必要があります。
javaについての質問です。
public class MyTurtleFrame extends TurtleFrame {
Turtle[] turtleList = new Turtle[10]; /*ここの箇所をArraylistをつかって書き換える*/
int numTurtles = 0;/*ここの箇所をArraylistをつかって書き換える*/
public MyTurtleFrame() {
this(400, 400);
}
public MyTurtleFrame(int width, int height) {
super(width, height);
JMenu turtles = new JMenu("Tuttle", true);
this.frame.getJMenuBar().add(turtles);
JMenuItem add = new JMenuItem("Add");
JMenuItem del = new JMenuItem("Delete");
add.addActionListener(this);
del.addActionListener(this);
add.setActionCommand("addTurtle");
del.setActionCommand("delTurtle");
turtles.add(add);
turtles.add(del);
this.frame.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
super.actionPerformed(e);
if (e.getActionCommand().equals("addTurtle")) {
this.addTurtle();
}
if (e.getActionCommand().equals("delTurtle")) {
this.delTurtle();
}
this.repaint();
}
protected void addTurtle() {
int x = (int) (Math.random() * this.frame.getContentPane().getWidth());
int y = (int) (Math.random() * this.frame.getContentPane().getHeight());
try{
turtleList[numTurtles]=new Turtle(x, y, 0);
this.add(turtleList[numTurtles]);
numTurtles++;
System.out.println(numTurtles);
}catch(Exception a){
System.out.println("例外が発生しました");}
}
protected void delTurtle(){
try{
this.remove(turtleList[numTurtles-1]);
numTurtles--;
}catch(Exception a){
System.out.println("例外が発生しました");
}
}
public static void main(String[] args) {
MyTurtleFrame f=new MyTurtleFrame();
}
}
文中のコメントが書いてある箇所をArraylistをつかって書き換えて,それに応じてaddTurtleとdelTurtleも適切に書き換える問題なのですが解決の糸口がどうしてもわかりません。
解答を導くヒントをご教授いただけるかたよろしくお願いします。
お礼
ご回答ありがとうございました。もう一度参考書を見直し、配列から理解を深めたいと想います!