1

私はJavaを初めて使用するので、GUIの実装に協力が必要です。以下は推測ゲームのコードです。できます。

  import javax.swing.*;
  import java.awt.*;
  import java.awt.event.ActionEvent;
  import java.awt.event.ActionListener;
  import java.util.Random;

  public class GuessGame extends JFrame {
     private JTextField guessTextField;
     private JLabel introLabel, guessLabel, clueLabel;
     private JButton enterB, playAgainB;

     private int randomNumber;

     public GuessGame() {
        super("Guessing Game!");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //Creates components
        enterB = new JButton("Guess");
        playAgainB = new JButton("Quit");
        introLabel = new JLabel("I have a number between 1 and 1000.");
        guessLabel = new JLabel("Can you guess my number? Please enter your guess:");

        clueLabel = new JLabel("");
       // comment2 = new JLabel(" ");
        guessTextField = new JTextField(5);

        //content pane
        Container c = getContentPane();
        setLayout(new FlowLayout());

        //adding component to the pane
        c.add(introLabel);
        c.add(guessLabel);
        c.add(guessTextField);
        //c.add(comment2);
        c.add(enterB);
        c.add(playAgainB);
        c.add(clueLabel);

        //enterB.setMnemonic('G');
        //playAgainB.setMnemonic('Q');

        setSize(350, 200);
        setLocationRelativeTo(null);
        setVisible(true);
        //setResizable(false);

        initializeNumber();

        //creating the handler
        GuessButtonHandler ghandler = new GuessButtonHandler(); //instantiate new object
        enterB.addActionListener(ghandler); // add event listener

        QuitButtonHandler qhandler = new QuitButtonHandler();
        playAgainB.addActionListener(qhandler);
     }

     private void initializeNumber() {
        randomNumber = new Random().nextInt(1000) + 1;
        System.out.println(randomNumber);
     }

     class QuitButtonHandler implements ActionListener {
        public void actionPerformed(ActionEvent e) {
           System.exit(0);
        }
     }

     class GuessButtonHandler implements ActionListener {
        public void actionPerformed(ActionEvent e) {
           int getUserInput;
           int diff;
           int Difference;
           try {
              getUserInput = Integer.parseInt(guessTextField.getText().trim());      

              if (getUserInput == randomNumber) {
                  clueLabel.setText("                              Correct!");
              }
              if (getUserInput > randomNumber) {
                 clueLabel.setText("                           Too High");
              } else {
                 clueLabel.setText("                           Too Low");
              }


           } 
           catch (NumberFormatException e1) {
              clueLabel.setText("Enter a VALID number!");
           }
        }


     }



     public static void main(String args[]) {
        //instantiate gueesgame object
         GuessGame app = new GuessGame();

     }
  }

ただし、ウィンドウの色は赤または青に変わるはずです。このコードを手伝ってください。私はJavaを初めて使用し、その構文を使用します。よろしくお願いします。ありがとうございました!

4

2 に答える 2

1

あなたが使用することができます:

current = Integer.parseInt(guessTextField.getText().trim()); 
if (!firstTime) {
    if (getUserInput > previous) {
        getContentPane().setBackground(Color.red);
    } else {
        getContentPane().setBackground(Color.blue);
    }
}

firstTimepreviousクラスメンバー変数です。

が満たされていないprevious場合は、getUserInput == randomNumber割り当てることを忘れないでください。

アップデート:

背景の青を 2 回設定しています。

if (getUserInput < randomNumber) {
   clueLabel.setText("Too Low");
   getContentPane().setBackground(Color.blue); <------ remove this extra call
   previous = getUserInput;
}
于 2012-08-26T16:27:41.977 に答える
1

コードは千の言葉よりも優れています.....

 if (current_Input > previous) {
    c.setBackground(Color.red);
 } else {
    c.setBackground(Color.blue);
 }
于 2012-08-26T16:33:15.233 に答える