gpt4 book ai didi

java - 接受用户输入的方法

转载 作者:行者123 更新时间:2023-12-01 06:15:05 24 4
gpt4 key购买 nike

大家好,我叫 Fyree,我在学校作业中遇到问题,我需要创建一个方法来获取用户的值,然后将其放入 computeRate() 中。方法打印出一行,显示计算出的费率。由于该程序将用户输入值作为字符串,因此我无法在计算速率公式中使用它,因为它们不是整数。

我的问题是能够将字符串转换为整数,并具有 computeRate()能够正确获取用户输入的六个值中的两个(intev5/inbv 部分...)。其余的值仅用于我需要在此之后制作的条形图,这是另一个问题的问题。由于某种原因,它无法找到上面列出的这两个变量,即使之前它能够找到用户输入值的字符串版本(但当然无法正确计算比率,因为它们不是整数)。这是我的代码:

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Rate_Graph extends JApplet implements ActionListener
{
JLabel bv, ev1, ev2, ev3, ev4, ev5;
JTextField bv1, ev_1, ev_2, ev_3, ev_4, ev_5;
JButton go, add1, add2, add3, add4, add5;
public void init()
{
setLayout(new FlowLayout());

bv = new JLabel("Enter beginning value:");
bv1 = new JTextField(5);


ev1 = new JLabel("Enter year 1 value:");
ev_1 = new JTextField(5);

ev2 = new JLabel("Enter year 2 value:");
ev_2 = new JTextField(5);

ev3 = new JLabel("Enter year 3 value:");
ev_3 = new JTextField(5);

ev4 = new JLabel("Enter year 4 value:");
ev_4 = new JTextField(5);

ev5 = new JLabel("Enter year 5 value:");
ev_5 = new JTextField(5);

int intbv = Integer.parseInt(bv1.getText());
int intev1 = Integer.parseInt(ev_1.getText());
int intev2 = Integer.parseInt(ev_2.getText());
int intev3 = Integer.parseInt(ev_3.getText());
int intev4 = Integer.parseInt(ev_4.getText());
int intev5 = Integer.parseInt(ev_5.getText());

go = new JButton("Add!");
go.addActionListener(this);
add(bv); add(bv1);
add(ev1); add(ev_1);
add(ev2); add(ev_2);
add(ev3); add(ev_3);
add(ev4); add(ev_4);
add(ev5); add(ev_5);
add(go);
}
public void actionPerformed(ActionEvent event)
{
Object src = event.getSource();
if(src==go){
String strbv = bv1.getText();
String strev1 = ev_1.getText();
String strev2 = ev_2.getText();
String strev3 = ev_3.getText();
String strev4 = ev_4.getText();
String strev5 = ev_5.getText();
}
}

public double computeRate()
{

double rate = (Math.pow(intev5 / intbv, 1.0 / 5.0) - 1);
return rate;
System.out.println(rate);
}
}

任何帮助将不胜感激。

最佳答案

return 语句后有 System.out.println(rate)...这是一条无法访问的语句,因此您必须将其删除或放在 return 之前。

intev5inbv 不可见,因为它们是在 init() 方法内部声明的,因此它们仅在作用域内可见该方法的。

如果您想在 computeRate() 中使用这些变量,一种方法是在 init() 之外声明它们:

JLabel bv, ev1, ev2, ev3, ev4, ev5;
JTextField bv1, ev_1, ev_2, ev_3, ev_4, ev_5;
JButton go, add1, add2, add3, add4, add5;
int intbv, intev1, intev2, intev3, intev4, intev5; //Declare outside of init()
public void init()
{
...

intbv = Integer.parseInt(bv1.getText());
intev1 = Integer.parseInt(ev_1.getText());
intev2 = Integer.parseInt(ev_2.getText());
intev3 = Integer.parseInt(ev_3.getText());
intev4 = Integer.parseInt(ev_4.getText());
intev5 = Integer.parseInt(ev_5.getText());

...
}

关于java - 接受用户输入的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26880927/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com