Ich habe vor kurzem angefangen Java mit Intellij zu programmieren. Mein aktuelles Projekt: Ein kleines Rate spiel.
Hier mal der Code:
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Scanner;
import java.util.concurrent.ThreadLocalRandom;
public class Main {
static Integer Versuche= 1;
static Integer myNumber = ThreadLocalRandom.current().nextInt(0,100 +1);
static JLabel text = new JLabel("Gebe eine Zahl zwischen 0 und 100 ein");
static JLabel text2 = new JLabel(" ");
public static void main(String[] args) {
Integer myNumber = ThreadLocalRandom.current().nextInt(0,100 +1);
openUI();
//nextNumber();
}
public static void openUI(){
JFrame frame = new JFrame("rate die Zahl!");
frame.setSize(400, 300);
frame.setLocation(700,150);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setDefaultLookAndFeelDecorated(true);
text.setBounds(50,50,220,30);
text2.setBounds(50,70,200,30);
JTextField textFeld = new JTextField();
textFeld.setBounds(50,100,200,30);
JButton Button = new JButton("Raten!");
Button.setBounds(50,150,200,30);
Button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String textFromTextfield = textFeld.getText();
Integer number = Integer.parseInt(textFromTextfield);
guess(number);
}
});
JButton reset = new JButton("reset");
reset.setBounds(290,0,100,30);
reset.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Versuche = 1;
myNumber = ThreadLocalRandom.current().nextInt(0,100 +1);
text.setText("Gebe eine Zahl zwischen 0 und 100 ein");
text2.setText("");
}
});
frame.add(reset);
frame.add(text2);
frame.add(text);
frame.add(textFeld);
frame.add(Button);
frame.setLayout(null);
frame.setVisible(true);
}
public static void nextNumber(){
Versuche++;
Scanner scanner =new Scanner(System.in);
System.out.println("Bitte gebe eine Zahl ein.");
Integer number = scanner.nextInt();
guess(number);
}
public static void guess(Integer number){
if (number == myNumber){
System.out.println("Richtig geraten!!!");
text.setText("Richtig geraten!!!");
System.out.println("Du hast " + Versuche+" Versuche gebraucht!");
text2.setText("Du hast " + Versuche+" Versuche gebraucht!");
}
else {
System.out.println("falsch!(Versuch: "+Versuche+ ".");
text.setText("falsch!(Versuch: "+Versuche+ ".");
Versuche++;
if (myNumber > number){
System.out.println("Tipp: Versuch eine groessere Zahl");
text2.setText("Tipp: Versuch eine groessere Zahl");
}
else {
text2.setText("Tipp: versuch eine kleinere Zahl");
System.out.println("Tipp: versuch eine kleinere Zahl");}
//nextNumber();
}
}
}
Jetzt möchte ich in der Method "reset" und wenn etwas falsch ist(method: guess) das Textfeld zurücksetzen weiß aber nicht wie das geht und ich konnte auch kein Informationen darüber herausfinden. Könnte mir vielleicht jemand helfen?
Vielen Dank im Voraus
Hier mal der Code:
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Scanner;
import java.util.concurrent.ThreadLocalRandom;
public class Main {
static Integer Versuche= 1;
static Integer myNumber = ThreadLocalRandom.current().nextInt(0,100 +1);
static JLabel text = new JLabel("Gebe eine Zahl zwischen 0 und 100 ein");
static JLabel text2 = new JLabel(" ");
public static void main(String[] args) {
Integer myNumber = ThreadLocalRandom.current().nextInt(0,100 +1);
openUI();
//nextNumber();
}
public static void openUI(){
JFrame frame = new JFrame("rate die Zahl!");
frame.setSize(400, 300);
frame.setLocation(700,150);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setDefaultLookAndFeelDecorated(true);
text.setBounds(50,50,220,30);
text2.setBounds(50,70,200,30);
JTextField textFeld = new JTextField();
textFeld.setBounds(50,100,200,30);
JButton Button = new JButton("Raten!");
Button.setBounds(50,150,200,30);
Button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String textFromTextfield = textFeld.getText();
Integer number = Integer.parseInt(textFromTextfield);
guess(number);
}
});
JButton reset = new JButton("reset");
reset.setBounds(290,0,100,30);
reset.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Versuche = 1;
myNumber = ThreadLocalRandom.current().nextInt(0,100 +1);
text.setText("Gebe eine Zahl zwischen 0 und 100 ein");
text2.setText("");
}
});
frame.add(reset);
frame.add(text2);
frame.add(text);
frame.add(textFeld);
frame.add(Button);
frame.setLayout(null);
frame.setVisible(true);
}
public static void nextNumber(){
Versuche++;
Scanner scanner =new Scanner(System.in);
System.out.println("Bitte gebe eine Zahl ein.");
Integer number = scanner.nextInt();
guess(number);
}
public static void guess(Integer number){
if (number == myNumber){
System.out.println("Richtig geraten!!!");
text.setText("Richtig geraten!!!");
System.out.println("Du hast " + Versuche+" Versuche gebraucht!");
text2.setText("Du hast " + Versuche+" Versuche gebraucht!");
}
else {
System.out.println("falsch!(Versuch: "+Versuche+ ".");
text.setText("falsch!(Versuch: "+Versuche+ ".");
Versuche++;
if (myNumber > number){
System.out.println("Tipp: Versuch eine groessere Zahl");
text2.setText("Tipp: Versuch eine groessere Zahl");
}
else {
text2.setText("Tipp: versuch eine kleinere Zahl");
System.out.println("Tipp: versuch eine kleinere Zahl");}
//nextNumber();
}
}
}
Jetzt möchte ich in der Method "reset" und wenn etwas falsch ist(method: guess) das Textfeld zurücksetzen weiß aber nicht wie das geht und ich konnte auch kein Informationen darüber herausfinden. Könnte mir vielleicht jemand helfen?
Vielen Dank im Voraus