我正在用java编写一个程序,但当我想编译它时,我遇到了一个问题。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Random;
import java.util.concurrent.ThreadLocalRandom;
public class y implements ActionListener {
JFrame f;
JButton b;
JTextField jtf1;
JTextField jtf2;
JTextField jtf3;
y() {
f = new JFrame("Random Number");
f.setBounds(0, 0, 1370, 740);
f.setVisible(true);
f.setLayout(null);
b = new JButton("submit");
b.setBounds(200, 450, 250, 70);
f.add(b);
jtf1 = new JTextField();
jtf1.setBounds(200, 300, 250, 70);
f.add(jtf1);
jtf2 = new JTextField();
jtf2.setBounds(200, 150, 250, 70);
f.add(jtf2);
jtf3 = new JTextField();
jtf3.setBounds(700, 300, 500, 70);
jtf3.setEditable(false);
f.add(jtf3);
Font f1 = new Font("Segoe Script", Font.BOLD, 30);
jtf1.setFont(f1);
jtf2.setFont(f1);
jtf3.setFont(f1);
b.setFont(f1);
b.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
String s1 = jtf1.getText();
String s2 = jtf2.getText();
int a = Integer.parseInt(s1);
int b = Integer.parseInt(s2);
if (a < 0) {
jtf3.setText("the numbers must be bigger than 0");
}
if (b < 0) {
jtf3.setText("the numbers must be bigger than 0");
}
if (b < a) {
jtf3.setText("the second number must be bigger then the first");
} else {
Random randomObj = new Random();
int randomNum = randomObj.nextInt((b - a)) + a;
jtf3.setText("the random number is : " + " " + randomNum);
}
}
public static void main(String[] args) {
new y();
}
}
但当我编译它时,它不能正常工作。它不会产生随机数,也不会加载错误。我能做什么?它不显示错误。该代码无法设置Text JTextFied。我已经尝试了很多方法来制造一个随机数。其中一些不起作用,还有一些不正确。我的编译器是:InteliJ IDEA
您有一个简单的打字错误:
String s1 = jtf1.getText();
String s2 = jtf1.getText();
将其更改为
String s1 = jtf2.getText();
String s2 = jtf1.getText();
它会起作用的!
我还建议将jtf2放在jtf1之上,因为jtf1表示第一个数字,jtf2表示第二个数字。