• 締切済み

JAVAの正解・誤解判定の宣言が分かりません

class ListPanel extends JPanel implements ActionListener{ JButton button1; JList list1; String[] data = {"( A )","( B )" ,"( C )" ,"( D )" }; ListPanel() { button1 = new JButton("選択OK"); button1.addActionListener(this); list1 = new JList(data); list1.setFixedCellWidth(100); JScrollPane scroll1 = new JScrollPane(list1); scroll1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); scroll1.setPreferredSize(new Dimension(150,80)); scroll1.setBorder(BorderFactory.createEtchedBorder() ); scroll1.setBorder(BorderFactory.createTitledBorder("選択肢") ); JPanel p1 = new JPanel(); p1.add(scroll1); JPanel p2 = new JPanel(); p2.add(button1); this.add(p1); this.add(p2); } public void actionPerformed(ActionEvent e1) { if (e1.getSource() == button1) { if (list1.getSelectedItem() == ( C ) ) { JOptionPane.showMessageDialog(null, "あなたが選択した解答" , " 正解です!",JOptionPane.INFORMATION_MESSAGE); } else if (list1.getSelectedItem() != ( C ) ){ JOptionPane.showMessageDialog(null, "あなたが選択した解答", "間違いです!解答は( C )です" , JOptionPane.INFORMATION_MESSAGE); list1.getSelectedItem() == ( C ) ) { の宣言が間違っているようです。何卒よろしくお願いいたします。どこが間違っているか指摘していただければ幸いです。どうか、よろしくお願いします。

みんなの回答

  • yuchi-co
  • ベストアンサー率60% (29/48)
回答No.1

list1.getSelectedItem() == ( C ) の部分はlist1.getSelectedItem() == "( C )"の間違いでしょうか。 "( C )"という文字列と比較しているのですよね。 であれば、Stringクラスのequalsメソッドで比較してみてはいかがでしょうか。 if("( C )".equals(list1.getSelectedItem())){ //正解 } ==で比較すると、オブジェクトとしての比較になると思います。

gigab3476
質問者

補足

ありがとうございます。 この部分は昨日getSelectedValue() コマンドで解決できたのですが、 複数の問題を作ろうと思います。 1問に対する問題と回答はできたんですが、複数の問題を作成する際に どういうプログラミングにすればよいのか分かりません。 もしよければ、かなり字数の制限がありますのでメール等で教えていただけら、非常に幸いだと思います。 何卒、よろしくお願い致します。

関連するQ&A

専門家に質問してみよう