インターネットに詳しい人。私は現在、1 年生のプログラミング クラスの課題に取り組んでいますが、正直なところ、プログラミングは私の最大のスキルではありません。したがって、この小さな問題についての助けをいただければ幸いです。
このプログラムは本質的に数字当てゲームであり、推測を配列リストに保存およびソートし、正しく推測すると、平均、最低の推測、正しい推測のインデックス配列、平均、および華氏に変換された温度を表示します。 . 課題で 40 と私の学生 ID の最大の数字が指定されているため、9 から 40 の間です。また、単純にクラスを 1 つにまとめることができるのに、不要な量のクラスが発生する理由も、割り当て仕様の誤りです。
私が抱えている問題は、正しいか間違っているかにかかわらず、温度の推測をarraylistに保存することです。コンストラクター内で arraylist を正しく初期化したと思いますが、jTextField から推測を取得する方法や場所がわかりません。それを理解したら、表示された結果に対して私が書いた他のメソッドを組み込み、この割り当てを完了することができます。
繰り返しますが、私の一般的な初心者には申し訳ありません。助けていただければ幸いです。
package TemperatureGuessApp;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;
import javax.swing.*;
public class TemperatureFrame extends JFrame {
public JFrame mainFrame;
public JLabel prompt1, prompt2;
public JTextField userInput;
public JLabel comment;
public JButton restart;
public int randomTemperature;
public int min = 9;
public int max = 40;
public int guessTemperature;
public int sumTemperature;
public double avgTemperature;
public int lowestTemperature;
public int convertedTemperature;
public int indexTemperature;
public Color background;
public TemperatureFrame() {
super("Temperature Guess/Conversion Application");
prompt1 = new JLabel("Randomly generated temperature is between 9 and 40.");
prompt2 = new JLabel("Write temperature (your guess) or -1 (for exit) and press enter key:");
userInput = new JTextField(5);
userInput.addActionListener(new GuessHandler());
ArrayList<Integer> guesses = new ArrayList<>();
comment = new JLabel("The results will be shown here.");
restart = new JButton("Start Again - Generate A New Temperature");
restart.addActionListener(
new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
userInput.setText("");
comment.setText("The results will be shown here.");
RandomTemperature();
userInput.setEditable(true);
}
});
setLayout(new FlowLayout());
background = Color.LIGHT_GRAY;
add(prompt1);
add(prompt2);
add(userInput);
add(comment);
add(restart);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500, 150);
setLocationRelativeTo(null);
setVisible(true);
setResizable(false);
RandomTemperature();
ConvertTemperature();
}
public void RandomTemperature() {
Random random = new Random();
randomTemperature = random.nextInt(max - min) + min;
}
public void SortTemperature() {
}
public void FindLowestTemperature() {
}
public void FindAverageTemperature() {
}
public void FindIndexTemperature() {
}
public void ConvertTemperature() {
convertedTemperature = randomTemperature * 9 / 5 + 32;
}
class GuessHandler implements ActionListener {
@ Override
public void actionPerformed(ActionEvent e) {
{
guessTemperature = Integer.parseInt(userInput.getText());
{
if (guessTemperature > randomTemperature) {
comment.setText("Temperature guessed is higher than the random temperature.");
userInput.setText("");
userInput.setEditable(true);
}
if (guessTemperature < randomTemperature) {
comment.setText("Temperature guessed is lower than the random temperature.");
userInput.setText("");
userInput.setEditable(true);
}
if (guessTemperature == randomTemperature) {
comment.setText("Temperature guessed is equal to the random temperature.");
JOptionPane.showMessageDialog(null, "Temperature guessed is equal to the random temperature.\n\n1. Lowest temperature is:" + lowestTemperature + "\n2. Average temperature is:" + avgTemperature + "\n3. Array index of correctly guessed temperture is:" + indexTemperature + "\n4. Temperature in Farenheit is:" + convertedTemperature + "\n\nThank you for playing!");
}
else if (guessTemperature == -1) {
System.exit(0);
}
}
}
}
}
}