Bom,estou implementando um jogo de adivinhação com a parte gráfica do java(swing),o código compila legal porém na hora de clicar no botão para saber se o numero que digitei é maior ou menor,simplesmente o programa trava!!Tenho impressão que seja no laço for no método actionPerformed(),porém se vcs pudessem me ajudar,eu agradeço!!
Aqui está o código:
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
public class PintaJanela{
public static void main(String args[]){
JFrame frame = new Janela(700,100);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
class Janela extends JFrame{
JPanel content;
JTextField field,field2;
JButton button;
public Janela(int height,int width){
this.setTitle("Jogo da Adivinhação");
content = new JPanel();
content.setLayout(new FlowLayout(FlowLayout.LEFT));
content.setBackground(Color.gray);
JLabel label = new JLabel("ENTRE COM UM VALOR ENTRE 1 E 10");
label.setFont(new Font("SERIF",Font.ITALIC,15));
label.setForeground(Color.white);
content.add(label);
field = new JTextField(6);
content.add(field);
button = new JButton("CLIQUE");
button.setForeground(Color.white);
button.addActionListener(new Adivinha());
content.add(button);
field2 = new JTextField(20);
content.add(field2);
field2.setEditable(false);
this.setContentPane(content);
this.setSize(height,width);
this.validate();
}
class Adivinha implements ActionListener{
public String sai = "false";
public void actionPerformed(ActionEvent e){
//public String sai = "false";
int valor = 1 + (int)(Math.random() * 10);
do{
int aux = Integer.parseInt(field.getText());
if(aux > valor){
content.setBackground(Color.red);
field2.setText("Tente um valor MENOR");
}else if(aux < valor){
content.setBackground(Color.blue);
field2.setText("Tente um valor MAIOR");
}else{
field2.setText("VOCE ACERTOU...PARABENS!!!");
sai = "true";
}
}while(sai.equals("false"));
}
}
}