私はJavaが初めてで、簡単な答えが必要だと確信しているものに苦労していますが、それを見つけることができないようです。次のように定義されたチェックボックスオブジェクトの配列があります。
ArrayList<JCheckBox> checkBoxList
JPanel がグリッド レイアウトで作成され、チェックボックスが JPanel と ArrayList に追加されます。
for (int i = 0; i < 256; i++) {
JCheckBox c = new JCheckBox();
c.setSelected(false);
checkBoxList.add(c);
mainPanel.add(c);
}
はい、256 個のチェックボックスがあります。パネルが JFrame に追加され、最終的に GUI が表示されます。ユーザーは、256 個のチェックボックスを任意に組み合わせて選択できます。
私のクラスは Serializable を実装しており、このチェックボックスの ArrayList は、「保存」および「読み込み」GUI ボタンを使用して保存および復元できます。保存されたオブジェクトをロードする私のコードは次のとおりです。
public class LoadListener implements ActionListener {
public void actionPerformed(ActionEvent a) {
try {
// Prompt the user for a load file
JFileChooser fileLoad = new JFileChooser();
fileLoad.showOpenDialog(mainFrame);
// Create a object/file input stream linking to the selected file
ObjectInputStream is = new ObjectInputStream(new FileInputStream(fileLoad.getSelectedFile()));
// Read the checkBox array list
checkBoxList = (ArrayList<JCheckBox>) is.readObject();
is.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
ArrayList オブジェクトをロードすると、チェックボックスの値が正しく入力されますが、これを反映するように GUI のチェックボックスを更新したいと考えています。これを行う簡単な方法はありますか?チェックボックスの配列には正しい値があり、パネル/フレームを再描画できると思いましたが、これは機能しません。理由を知りたいのですが、読み込まれたチェックボックス オブジェクトの配列が GUI 上のチェックボックス オブジェクトを反映しなくなったのでしょうか。どんな助けでも大歓迎です。
ありがとう!