ここでやろうとしているのは、ユーザーが写真に写っている人を推測するクイズのようなゲームを作成しようとしていることです。そして、送信ボタンをクリックしてユーザーが画像を正しく推測するたびに、それが必要になります。次の質問に進む必要があります。配列を使用してみましたが、構文をどこに置くべきかわかりません。と私は混乱しています。また、ポリモーフィズムを使用してみました。しかし、送信ボタンをクリックするたびに。次の画像が表示されますが、スコアとミスは消えます。-_-
これが私のコードです。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Second extends JFrame{
private int number, score;
private String answer;
private String[] answers;
private ImageIcon[] questions;
private JLabel lblQuestion, lblMistakes, lblScore;
private JButton btnSubmit;
private SubmitButtonHandler sbhandler;
private JTextField txtAnswer;
public Second(){
setTitle("Guess Who");
btnSubmit = new JButton("Submit");
sbhandler = new SubmitButtonHandler();
btnSubmit.addActionListener(sbhandler);
txtAnswer = new JTextField(20);
txtAnswer.setFont(new Font("Tekton Pro Ext", Font.BOLD, 20));
txtAnswer.setHorizontalAlignment(JTextField.CENTER);
lblMistakes = new JLabel("", JLabel.CENTER);
lblMistakes.setForeground(Color.blue);
lblMistakes.setFont(new Font("Tekton Pro Ext", Font.BOLD, 30));
lblMistakes.setOpaque(true);
lblScore = new JLabel("", JLabel.CENTER);
lblScore.setForeground(Color.white);
lblScore.setBackground(Color.black);
lblScore.setFont(new Font("Tekton Pro Ext", Font.BOLD, 30));
lblScore.setOpaque(true);
questions = new ImageIcon[10];
questions[1] = new ImageIcon("C:\\Users\\ACER\\Desktop\\mario.jpeg");
questions[2] = new ImageIcon("C:\\Users\\ACER\\Desktop\\ss.jpg");
questions[3] = new ImageIcon("C:\\Users\\ACER\\Desktop\\dora.jpg");
questions[4] = new ImageIcon("C:\\Users\\ACER\\Desktop\\vegeta.jpg");
questions[5] = new ImageIcon("C:\\Users\\ACER\\Desktop\\kirby.jpg");
lblQuestion = new JLabel(questions[1]);
lblQuestion.setFont(new Font("Tekton Pro Ext", Font.BOLD, 18));
Container pane = getContentPane();
pane.setLayout(new GridLayout(5,1));
pane.add(lblQuestion);
pane.add(txtAnswer);
pane.add(btnSubmit);
pane.add(lblScore);
pane.add(lblMistakes);
setBounds(500,200,500,500);
setResizable(false);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
private class SubmitButtonHandler implements ActionListener{
public void actionPerformed(ActionEvent e){
answers = new String[10];
answers[1] = "Mario";
answers[2] = "Spongebob Squarepants";
answers[3] = "Dora the Explorer";
answers[4] = "Vegeta";
answers[5] = "Kirby";
if(txtAnswer.getText().equalsIgnoreCase(answers[1])){
JOptionPane.showMessageDialog(null, "You got the correct answer.");
number = number;
score = score + 1;
lblScore.setText("Score: " + Integer.toString(score));
txtAnswer.setText("");
txtAnswer.requestFocusInWindow();
}else{
number = number + 1;
lblMistakes.setText("Mistakes: " + Integer.toString(number));
txtAnswer.setText("");
if(number == 1){
JOptionPane.showMessageDialog(null, "Try again.");
lblMistakes.setBackground(Color.yellow);
txtAnswer.requestFocusInWindow();
}else if(number == 2){
lblMistakes.setBackground(Color.orange);
JOptionPane.showMessageDialog(null,"Careful. You only have one chance.");
txtAnswer.requestFocusInWindow();
}else if(number == 3){
lblMistakes.setBackground(Color.red);
JOptionPane.showMessageDialog(null,"Game Over.");
dispose();
Second s = new Second();
}
}
}
}
public static void main(String[]args){
Second s = new Second();
}
}