これは私の最初の投稿です。ボタンを押すたびにArrayList <Number>に値を追加する
私は、[0、0]から[9、9]までの座標を示すJButtonを持つNxNボードを作成しました。 ボタンをクリックするたびにコンソールに座標が表示され、何をしようとしたのかは別のウィンドウの2番目のボタンを押して表示されるArrayListにその座標を保存することです...何も気にせず、基本的な概念の周り...
問題は、私はArrayListに保存される値を取得することができませんし、私は2番目のボタンを押すとそれを呼び出すことはできません... 私のクラス...それぞれが異なるファイルにあります。
Board.java
public class Board{
public Board(){
JFrame win = new JFrame();
GridLayout layout = new GridLayout(10, 10);
win.setLayout(layout);
for (int row1 = 0; row1 < 10 ; row1 = row1+1){
for (int col1 = 0; col1 < 10; col1 = col1+1){
JPanel jp = new JPanel();
JButton jb = new JButton("[" + row1 + "," + col1 + "]");
jb.addActionListener(new ButtonEventHandler(row1, col1));
jp.add(jb);
win.add(jp);
}
win.setVisible(true);
win.pack();
}
JFrame win2 = new JFrame("Stored values");
win2.setVisible(true);
JPanel jp2 = new JPanel();
win2.add(jp2);
JButton jb2 = new JButton("Check Log");
jb2.addActionListener(new Position(win2, jb2));
jp2.add(jb2);
win2.pack();
}}
ButtonEventHandler.java
public class ButtonEventHandler implements ActionListener {
private int _row1;
private int _col1;
private ArrayList<Number> _list;
public ButtonEventHandler(int row1, int col1){
_row1 = row1;
_col1 = col1;
_list = new ArrayList<Number>();
}
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Position: " + _row1 + ", " + _col1);
_list.add(_row1);
_list.add(_col1);
}
public ArrayList<Number> getList(){
return _list;
}}
Position.java
public class Position implements ActionListener {
private JFrame _win2;
private JButton _jb2;
private int _row1;
private int _col1;
private ArrayList<Number> _list;
private ButtonEventHandler beh = new ButtonEventHandler(_row1, _col1);
public Position(JFrame win2, JButton jb2){
_win2 = win2;
_jb2 = jb2;
}
@Override
public void actionPerformed(ActionEvent e) {
System.out.println(beh.getList());
}
}
助けてくれてありがとう!
セブ
投稿を正しくフォーマットするには、有効なコード –
tnxを送信してください。 – TriRook