我怎样才能让计数器在这段代码中工作?
How can I get the counter to work in this code?
我想计算用户猜对数字所需的尝试次数,如何让计数器(在本例中为“i”)工作?我已经在 ationPerformed 中实现了它,但是即使多次按下按钮,它也只会计算一次通过。我该如何解决这个问题?
import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.ActionEvent;
import java.util.Random;
public class Zahlenraten{
public static void main(String[] args) {
JFrame f = new JFrame("Zahlenraten");
f.setSize(500,500);
//f.setLayout(null);
JTextField t = new JTextField("");
t.setBounds(95,10,150,30);
f.addWindowFocusListener(new WindowAdapter() {
public void windowGainedFocus(WindowEvent e) {
t.requestFocusInWindow();
}
});
JButton e = new JButton("Exit");
e.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
e.setBounds(300, 100, 100, 30);
JLabel txt = new JLabel("Zahl eingeben:");
txt.setBounds(10,10,150,30);
Random r = new Random();
int Zahl = r.nextInt(100-0+1);
int i = 0;
JButton b = new JButton("Prüfen");
f.getRootPane().setDefaultButton(b);//Enter Key = button b
b.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
i++;
String str = t.getText();
int wert = Integer.parseInt(str);
t.setText("");
if(wert < Zahl) {
System.out.println("Der gesuchte Wert ist größer.");
}
if(wert > Zahl) {
System.out.println("Der gesuchte Wert ist kleiner.");
}
if(wert == Zahl) {
System.out.println("Der gesuchte Wert wurde gefunden!");
}
}
});
b.setBounds(10,100,100,30);
JPanel p = new JPanel();
p.setLayout(null);
p.add(b);
p.add(e);
p.add(t);
p.add(txt);
f.add(p);
f.setVisible(true);
}
}
使用以下解决方案
import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.ActionEvent;
import java.util.Random;
public class Zahlenraten{
static int i = 0;
public static void main(String[] args) {
JFrame f = new JFrame("Zahlenraten");
f.setSize(500,500);
//f.setLayout(null);
JTextField t = new JTextField("");
t.setBounds(95,10,150,30);
f.addWindowFocusListener(new WindowAdapter() {
public void windowGainedFocus(WindowEvent e) {
t.requestFocusInWindow();
}
});
JButton e = new JButton("Exit");
e.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
e.setBounds(300, 100, 100, 30);
JLabel txt = new JLabel("Zahl eingeben:");
txt.setBounds(10,10,150,30);
Random r = new Random();
int Zahl = r.nextInt(100-0+1);
JButton b = new JButton("Prüfen");
f.getRootPane().setDefaultButton(b);//Enter Key = button b
b.addActionListener(evt -> {
i++;
String str = t.getText();
int wert = Integer.parseInt(str);
t.setText("");
if(wert!=Zahl) {
System.out.println("Der gesuchte Wert ist kleiner.");
}
if(wert == Zahl) {
System.out.println("Der gesuchte Wert wurde gefunden!");
}
});
b.setBounds(10,100,100,30);
JPanel p = new JPanel();
p.setLayout(null);
p.add(b);
p.add(e);
p.add(t);
p.add(txt);
f.add(p);
f.setVisible(true);
}
}
输出为
创建一个接口,如:
Interface Counter{
public static int count = 0;
}
然后调用Counter Interface
的属性
b.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Copunter.count++;
String str = t.getText();
int wert = Integer.parseInt(str);
t.setText("");
if(wert Zahl) {
System.out.println("Der gesuchte Wert ist kleiner.");
}
if(wert == Zahl) {
System.out.println("Der gesuchte Wert wurde gefunden!");
}
}
});
我想计算用户猜对数字所需的尝试次数,如何让计数器(在本例中为“i”)工作?我已经在 ationPerformed 中实现了它,但是即使多次按下按钮,它也只会计算一次通过。我该如何解决这个问题?
import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.ActionEvent;
import java.util.Random;
public class Zahlenraten{
public static void main(String[] args) {
JFrame f = new JFrame("Zahlenraten");
f.setSize(500,500);
//f.setLayout(null);
JTextField t = new JTextField("");
t.setBounds(95,10,150,30);
f.addWindowFocusListener(new WindowAdapter() {
public void windowGainedFocus(WindowEvent e) {
t.requestFocusInWindow();
}
});
JButton e = new JButton("Exit");
e.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
e.setBounds(300, 100, 100, 30);
JLabel txt = new JLabel("Zahl eingeben:");
txt.setBounds(10,10,150,30);
Random r = new Random();
int Zahl = r.nextInt(100-0+1);
int i = 0;
JButton b = new JButton("Prüfen");
f.getRootPane().setDefaultButton(b);//Enter Key = button b
b.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
i++;
String str = t.getText();
int wert = Integer.parseInt(str);
t.setText("");
if(wert < Zahl) {
System.out.println("Der gesuchte Wert ist größer.");
}
if(wert > Zahl) {
System.out.println("Der gesuchte Wert ist kleiner.");
}
if(wert == Zahl) {
System.out.println("Der gesuchte Wert wurde gefunden!");
}
}
});
b.setBounds(10,100,100,30);
JPanel p = new JPanel();
p.setLayout(null);
p.add(b);
p.add(e);
p.add(t);
p.add(txt);
f.add(p);
f.setVisible(true);
}
}
使用以下解决方案
import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.ActionEvent;
import java.util.Random;
public class Zahlenraten{
static int i = 0;
public static void main(String[] args) {
JFrame f = new JFrame("Zahlenraten");
f.setSize(500,500);
//f.setLayout(null);
JTextField t = new JTextField("");
t.setBounds(95,10,150,30);
f.addWindowFocusListener(new WindowAdapter() {
public void windowGainedFocus(WindowEvent e) {
t.requestFocusInWindow();
}
});
JButton e = new JButton("Exit");
e.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
e.setBounds(300, 100, 100, 30);
JLabel txt = new JLabel("Zahl eingeben:");
txt.setBounds(10,10,150,30);
Random r = new Random();
int Zahl = r.nextInt(100-0+1);
JButton b = new JButton("Prüfen");
f.getRootPane().setDefaultButton(b);//Enter Key = button b
b.addActionListener(evt -> {
i++;
String str = t.getText();
int wert = Integer.parseInt(str);
t.setText("");
if(wert!=Zahl) {
System.out.println("Der gesuchte Wert ist kleiner.");
}
if(wert == Zahl) {
System.out.println("Der gesuchte Wert wurde gefunden!");
}
});
b.setBounds(10,100,100,30);
JPanel p = new JPanel();
p.setLayout(null);
p.add(b);
p.add(e);
p.add(t);
p.add(txt);
f.add(p);
f.setVisible(true);
}
}
输出为
创建一个接口,如:
Interface Counter{
public static int count = 0;
}
然后调用Counter Interface
的属性 b.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Copunter.count++;
String str = t.getText();
int wert = Integer.parseInt(str);
t.setText("");
if(wert Zahl) {
System.out.println("Der gesuchte Wert ist kleiner.");
}
if(wert == Zahl) {
System.out.println("Der gesuchte Wert wurde gefunden!");
}
}
});