Thread ile alıştırma yapmak için click oyunu yaptım (daha önceden yapmıştım ama saniye çalışmıyordu) Sorun şu ki: if(boolean==true)
dememe rağmen actived ile true kıyaslamıyor anladığım kadarıyla çünkü boolean’a true değeri dönüyor sorun nedir?
Kod:
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.SwingConstants;
public class TimerGUI extends JFrame implements Runnable {
JButton button;
JLabel time;
JLabel cc;
static boolean actived = false;
public void run(){
try{
while(Integer.parseInt(time.getText())>0){
int i = Integer.parseInt(time.getText());
i--;
time.setText(Integer.toString(i));
Thread.sleep(1000);
if(i==0) {
JOptionPane.showMessageDialog(null,"Your click: "+cc.getText(), "Click Game", JOptionPane.DEFAULT_OPTION);
cc.setText("0");
time.setText("30");
}
}
// Bir takım işlemler
}catch(Exception e){}
}
public TimerGUI() {
setTitle("Click Game");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500,800);
setLayout(null);
setResizable(false);
getContentPane().setBackground(Color.gray);
button = new JButton("Click");
button.setBounds(0, 362, 500, 400);
button.setFocusPainted(false);
button.setBackground(Color.DARK_GRAY);
button.setForeground(Color.LIGHT_GRAY);
button.setBorderPainted(false);
button.addActionListener((ActionEvent e)->{
actived = true;
System.out.println(actived);
cc.setText(Integer.toString(Integer.parseInt(cc.getText())+1));
});
time = new JLabel("30");
time.setBounds(10, 10, 50, 30);
time.setForeground(Color.LIGHT_GRAY);
time.setFont(new Font("Arial",Font.CENTER_BASELINE,30));
time.setHorizontalAlignment(SwingConstants.CENTER);
cc = new JLabel("0");
cc.setBounds(2,110,500,160);
cc.setFont(new Font("Arial",Font.CENTER_BASELINE,200));
cc.setHorizontalAlignment(SwingConstants.CENTER);
add(cc);
add(time);
add(button);
setVisible(true);
}
public static void main(String[]args) {
new TimerGUI();
if(actived == true) {
Thread thread = new Thread(new TimerGUI());
thread.start();
}
}
}