10/06/10 03:23:34
>>138
ちゃんとDialogで代用できるって言われてるじゃん
課題通り8×8マスに8個置くだけなら最初の選択用ダイアログは不要だし
(1) import javax.swing.JOptionPane; を削除
(2) MinesWindowのmainメソッドは以下だけでいい
public static void main(String[] args) {
new MFrame(new Minesweeper(8, 8, 8, (long)(Math.random() * 1E6)));
}
(3) MFrameのコンストラクタ内で定義されている匿名クラス内の以下の2行をそれぞれ変更
× JOptionPane.showConfirmDialog(null, "BOM!", null, JOptionPane.DEFAULT_OPTION);
○ new MessageBox("BOM!").setVisible(true);
× JOptionPane.showConfirmDialog(null, "CLEAR!", null, JOptionPane.DEFAULT_OPTION);
○ new MessageBox("CLEAR!").setVisible(true);
(4) 以下のクラスをプログラム末尾に追加
class MessageBox extends Dialog {
MessageBox(String message) {
super((Frame)null, null, true);
setLayout(new GridLayout(2,0));
Button b = new Button("OK");
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dispose();
}
});
add(new Label(message));
add(b);
pack();
setLocationRelativeTo(null);
}
}