一个java小程序,要求 得到一个随机数 然后猜大小 这个代码怎么编都不对 帮忙改一下 谢谢

2024-12-22 16:52:06
推荐回答(4个)
回答1:

把int a2 =Integer.parseInt(tf2.getText());放到actionPerformed(ActionEvent e){}里边才对。
花浓花浅是正解。
你看看你的逻辑,只有判断了e.getSource()==b2之后,才有必要执行tf2.getText();你的程序当按下“得到一个随机数”时,就执行tf2.getText()了,没有必要,而且此时tf2中根本没有输入,所以抛出了java.lang.NumberFormatException.由于java默认初始化int值为0,所以此时a=0.你输入0时会看到显示“猜对了”。
一般框架都直接继承javax.swing.JFrame。
够详细吧。

回答2:

你改成我这样试试嘛,我都运行了,能才对数字
经过测试,可行
import java.awt.*;
import java.awt.event.*;

public class MyFrame extends Frame implements ActionListener {

int a;
Button b1 = new Button("得到一个随机数");
TextField tf1 = new TextField(10);
TextField tf2 = new TextField(10);
Button b2 = new Button("确定");
public MyFrame(String s ) {
super(s);
setLayout(new FlowLayout());
tf1.setBackground(Color.CYAN);

add(b1);
add(tf1);
add(tf2);
add(b2);

b1.addActionListener(this);
b2.addActionListener(this);

setSize(200,200);
setVisible(true);
validate();
}

public void actionPerformed(ActionEvent e)
{
//String s2 =tf2.getText();
int a2 =Integer.parseInt(tf2.getText());
if(e.getSource()==b1)
{
a =(int)((Math.random()*100)+1);
}
else {
if(e.getSource()==b2)
{
if(a>a2)
{
tf1.setText("猜小了");
}
else
{
if(a {
tf1.setText("猜大了");
}
else
{
tf1.setText("猜对了");
}
}
}
}

}
public static void main(String arg[])
{
String s = null;
MyFrame myframe = new MyFrame(s);//实例化MyFrame
}

}

回答3:

import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;
public class MyFrame extends Frame implements ActionListener {

private int a;
JFrame jf=new JFrame ("猜数");
Button b1 = new Button("得到一个随机数");
TextField tf1 = new TextField(10);
TextField tf2 = new TextField(10);
Button b2 = new Button("确定");
public MyFrame(){
jf.setLayout(new FlowLayout());
tf1.setBackground(Color.CYAN);

jf.add(b1);
jf.add(tf1);
jf.add(tf2);
jf.add(b2);

b1.addActionListener(this);
b2.addActionListener(this);

jf.setLocation(300, 200);//设置窗口出现位置
jf.setSize(300,200);//设置窗口大小
jf.setVisible(true);//设置可见
//要先加组件再设置可见,否则不起作用
jf.setResizable(false);//设置窗口大小不可变
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public void actionPerformed(ActionEvent e){
if(e.getSource()==b1)
{
a =(int)((Math.random()*100)+1);
System.out.println("a的值为:"+a);//用于检测
}else if(e.getSource()==b2){
int a2 =Integer.parseInt(tf2.getText());
if(a>a2){
tf1.setText("猜小了");
}else if(a tf1.setText("猜大了");
}else{
tf1.setText("猜对了");
}
}

}
public static void main(String[] args) {
new MyFrame();

}

}

你的代码缺少main函数,所以找不到public入口点

回答4:

那就看你怎么想了,我给你几个建议,因为我没有时间帮你实现。
建议一:简单实现法:你把每种书名、价格、厂家都作为一个对象的属性分别存到不同的对象中,在主函数中首先用构造方法实例化这几个对象,然后再用你输入的字符串和每个对象的相应属性一一比对,符合条件则输出对应的厂家。
建议二:比较复杂实现法:信息全部保存到数据库,然后再用你输入的字符串和每条记录的相应字段一一比对,符合条件则输出对应的厂家。
如果你对我真诚的回答满意的话,请给我多加分,如果有什么疑问的话,请给我留言。QQ也可以全天在线108424683.