テキストフィールドに入力された文字列を取り出して配列の新しい要素に変換したいのですが、それらを出力しようとするたびにnullとして登録されます。質問に無関係なものを無視しようとすると、私はそれらを試していますが、配列に新しい要素を追加することはできません。私の配列に新しい要素を追加するのに問題があります
これは、配列が作成され、初期化される場所です。
public class AssignSeat {
String[] arrangement = new String[12];
public String[] SeatStart() {
arrangement[0] = "Collins";
arrangement[2] = "Faivre";
arrangement[3] = "Kinnard";
arrangement[6] = "Morgans";
arrangement[7] = "Rohan";
arrangement[8] = "Shatrov";
arrangement[9] = "Sword";
arrangement[11] = "Tuckness";
System.out.format("%-15s%-15s%n", "seat", "passenger");
for (int i=0; i<arrangement.length; i++) {
System.out.format("%-15s%-15s%n", i+1, arrangement[i]);
}
System.out.println();
return arrangement;
}
public String[] getArrangement() {
return arrangement;
}
public void setArrangement(String[] arrangement) {
this.arrangement = arrangement;
}
}
ここで、配列の要素を追加しようとしています。具体的には、第2、第5、第6、第11。
public void actionPerformed(ActionEvent event) {
//String name = null;
AssignSeat seat = new AssignSeat();
seat.SeatStart();
if(event.getSource() instanceof JButton){
JButton clickedButton = (JButton) event.getSource();
String buttonText = clickedButton.getText();
if (buttonText.equals("2")) {
entername.setVisible(true);
seatnum.setVisible(true);
confirmed.setVisible(true);
inputline.setVisible(true);
outputline.setVisible(true);
inputline.setEditable(true);
inputline.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
String name = null;
AssignSeat seat = new AssignSeat();
seat.SeatStart();
if (key == KeyEvent.VK_ENTER) {
Toolkit.getDefaultToolkit().beep();
name = inputline.getText();
seat.arrangement[1] = name;
System.out.println(seat.arrangement[1]);
inputline.setEditable(false);
outputline.setText("2");
two.setForeground(Color.black);
for(ActionListener al : two.getActionListeners()) {
two.removeActionListener(al);
}
}
}
});
} else if(buttonText.equals("5")) {
entername.setVisible(true);
seatnum.setVisible(true);
confirmed.setVisible(true);
inputline.setVisible(true);
outputline.setVisible(true);
inputline.setEditable(true);
inputline.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
String name = null;
AssignSeat seat = new AssignSeat();
seat.SeatStart();
if (key == KeyEvent.VK_ENTER) {
Toolkit.getDefaultToolkit().beep();
name = inputline.getText();
seat.arrangement[4] = name;
System.out.println(seat.arrangement[4]);
inputline.setEditable(false);
outputline.setText("5");
five.setForeground(Color.black);
for(ActionListener al : five.getActionListeners()) {
five.removeActionListener(al);
}
}
}
});
} else if (buttonText.equals("6")) {
entername.setVisible(true);
seatnum.setVisible(true);
confirmed.setVisible(true);
inputline.setVisible(true);
outputline.setVisible(true);
inputline.setEditable(true);
inputline.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
String name = null;
AssignSeat seat = new AssignSeat();
seat.SeatStart();
if (key == KeyEvent.VK_ENTER) {
Toolkit.getDefaultToolkit().beep();
name = inputline.getText();
seat.arrangement[5] = name;
System.out.println(seat.arrangement[5]);
inputline.setEditable(false);
outputline.setText("6");
six.setForeground(Color.black);
for(ActionListener al : six.getActionListeners()) {
six.removeActionListener(al);
}
}
}
});
} else if (buttonText.equals("11")) {
entername.setVisible(true);
seatnum.setVisible(true);
confirmed.setVisible(true);
inputline.setVisible(true);
outputline.setVisible(true);
inputline.setEditable(true);
inputline.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
String name = null;
AssignSeat seat = new AssignSeat();
seat.SeatStart();
if (key == KeyEvent.VK_ENTER) {
Toolkit.getDefaultToolkit().beep();
name = inputline.getText();
seat.arrangement[10] = name;
System.out.println(seat.arrangement[10]);
inputline.setEditable(false);
outputline.setText("11");
eleven.setForeground(Color.black);
for(ActionListener al : eleven.getActionListeners()) {
eleven.removeActionListener(al);
}
}
}
});
}
}
}
}
ソートで何をしたいのですか... すでにいくつかのデータを持っている文字列配列を更新したいのですが、他の人に見せたいと思っています... – abhi
なぜelse ifループで新しいオブジェクトを作成しますか? ?新しいオブジェクトを作成しても、単一のコピーで作業しているわけではありません。つまり、複数のコピーを作成しているということです。 –
新しいキーワードは新しいオブジェクトを作成します。あなたは同じオブジェクトを使用したい場合は、オブジェクトを一度作成して使用してシングルトンを使用する必要があります。 –