我正在完成一项学校作业,我正在尝试根据用户输入GUI的内容来计算税率。我想弄清楚如何在结尾处添加一个文本框,但到目前为止我只能做out.println
。
import java.swing.JOptionPane;
public class GUI {
public static void main(String[] args) {
String fn = javax.swing.JOptionPane.showInputDialog("Enter house value");
int house = Integer.parseInt(fn);
double tax = 0;
if (house <= 8500)
tax = house * 0.10;
else if (house <= 34500)
tax = house * 0.15;
else if (house <= 83600)
tax = house * 0.25;
else if (house <= 174400)
tax = house * 0.28;
else if (house <= 379150)
tax = house * 0.33;
else if (house >= 379150)
tax = house * 0.35;
if (house <= 8500)
System.out.println("You have entered the 10% bracket. Due: $" + tax);
else if (house <= 34500)
System.out.println("You have entered the 15% bracket. Due: $"+ tax);
else if (house <= 83600)
System.out.println("You have entered the 25% bracket. Due: $"+ tax);
else if (house <= 174400)
System.out.println("You have entered the 28% bracket. Due: $"+ tax);
else if (house <= 379150)
System.out.println("You have entered the 33% bracket. Due: $"+ tax);
else if (house >= 379150)
System.out.println("You have entered the 35% bracket. Due: $"+ tax);
}
}
答案 0 :(得分:0)
完成所有计算后,您只需显示一个JOptionPane。
在类中声明一个String,如下所示: -
字符串结果;
在您需要执行的计算之后更改字符串的值,如下所示: -
result =“你的结果在这里”;
现在,只需在GUI类中创建一个内部类,如下所示: -
公共类结果{ public void main(String a []) { JOptionPane.showMessageDialog(NULL,结果); } }
在代码中,更改String的值后,调用我们为显示结果而创建的Dialog类,如下所示: -
结果showResult = new Result(); showResult.setVisible(真);
答案 1 :(得分:0)
首先,您的作业是否会迫使您使用JOptionPanes完成所有这些工作?纯粹从您的用例来看,拥有一个通常包含输入文本字段和输出文本字段的普通JDialog似乎更加合乎逻辑。
第二,将JOptionPane用于输出完全没有意义。该对象的名称已经说了它,JOptionPane,当用户应该在选项之间进行选择时使用它。输出窗口不提供任何选项,仅是为了向用户输出不应与之交互的信息。
请记住,将JDialog用于输出窗口会更好。如果您还没有注意到,那么如果您输入任何非整数值,或者甚至按了cancel选项,您的班级现在都会在NumberFormatException
上抛出parseInt(fn)
(因为您没有检查输入的内容)完全没有。)
我将使用这个很小的设计缺陷来确保我们具有可用的值,从而确定输出窗口的初始化。这段代码不是完美的或优化的,但是可以满足您的要求。
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class GUI
{
public static void main(String[] args)
{
String fn = javax.swing.JOptionPane.showInputDialog("Enter house value");
int house = Integer.parseInt(fn);
String taxBracket = "";
try
{
double tax = 0;
if(house <= 8500)
{
tax = house * 0.10;
taxBracket = "10%";
}
else if(house <= 34500)
{
tax = house * 0.15;
taxBracket = "15%";
}
else if(house <= 83600)
{
tax = house * 0.25;
taxBracket = "25%";
}
else if(house <= 174400)
{
tax = house * 0.28;
taxBracket = "28%";
}
else if(house <= 379150)
{
tax = house * 0.33;
taxBracket = "33%";
}
else if(house >= 379150)
{
tax = house * 0.35;
taxBracket = "35%";
}
JDialog dialog = new JDialog();
dialog.setTitle("Output");
JPanel outputPanel = new JPanel();
String output = new String("You have entered the " + taxBracket + " bracket. Due: $" + tax);
JLabel outputLabel = new JLabel(output);
outputPanel.add(outputLabel);
dialog.add(outputPanel);
dialog.pack();
dialog.setVisible(true);
}
catch(NumberFormatException e)
{
System.out.println("Error: The entered Input is non-numeric.");
}
}
}
再次,如果您的作业迫使您使用2个JOptionPanes来执行此操作,只需用JOptionPane.showMessageDialog()
替换初始化JDialog的代码,然后将输出String传递给JOptionPane。