所以我是java的新手,我正试图使用尝试和捕捉。例如,如果我问用户有多少葡萄,他们输入一串字母,它将显示一个错误对话框,而不仅仅是系统错误。我能够用扫描仪做到这一点,但不能用JOptionPane。我真的希望出现一个对话框,这就是为什么我试图使用JOptionPane.show输入输入对话框。
工作的扫描仪...=
import java.util.Scanner;
class test {
public static void main (String[] args)
{
Scanner input = new Scanner(System.in);
System.out.println("How many grapes do u have?");
int grapes = 1;
try
{
grapes = input.nextInt();
}
catch (Exception e)
{
System.out.println("Good job Sherlock you broke the program");
return;
}
int mg;
if (grapes >= 100)
mg = 1;
else
mg = 2;
switch (mg){
case 1: System.out.println("You got a lot of grapes");
break;
case 2: System.out.println("You brarely got any grapes");
break;
}
}
}
JOptionPane不工作...
import javax.swing.JOptionPane;
public class bday
{
public static void main(String[] args)
{
String age = "0";
try
{
age = JOptionPane.showInputDialog("What was your age yesterday?");
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null, "Thanks a lot, you broke it. CYA later.");
return;
}
int iage = Integer.parseInt(age);
String bday = "0";
try
{
bday = JOptionPane.showInputDialog("Was yesterday your B-Day? (True or False)");
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null, "WHY U MESS UP PROGRAM???.... BYE BYE!!");
return;
}
boolean bage = Boolean.parseBoolean(bday);
if (bage == true){
iage += 1;
JOptionPane.showMessageDialog(null, "You are now " + iage);
}
else if (bage == false){
JOptionPane.showMessageDialog(null, "Happy unbirthday!");
}
if (iage ==10){
JOptionPane.showMessageDialog(null, "Congrats, double digits!");
}
if (iage >19){
JOptionPane.showMessageDialog(null, "U aint a Teenager");
}
else if (iage < 13)
JOptionPane.showMessageDialog(null, "U aint a Teenager");
}
}
查看它失败的行。我怀疑它是布尔 bage = 布尔.parse布尔(bday);
.您可以自由地在字符串中保存任何内容,但是将“whatever”转换为布尔值可能会失败。
把它放在你的尝试/捕捉。
你在尝试/捕捉错误的东西。您应该将parse语句放在try块中,因为这是引发异常的原因。
例如,不
String age = "0";
try
{
age = JOptionPane.showInputDialog("What was your age yesterday?");
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null, "Thanks a lot, you broke it. CYA later.");
return;
}
int iage = Integer.parseInt(age);
而是:
String age = JOptionPane.showInputDialog("What was your age yesterday?");
try {
iage = Integer.parseInt(age);
} catch (NumberFormatException nfe) {
// show error
}
此外,您应该避免捕获异常,
而只应捕获特定的异常,此处为“数字格式异常”
。
编辑
在您询问的评论中编辑:
还有一个问题,我应该对布尔值做同样的事情吗?
在解析时,布尔类型有点棘手(在我看来)。要了解布尔值.parse布尔(...)
的工作原理,请查看布尔 API,特别是解析布尔方法。您将看到,如果输入的文本没有意义,它不会引发数字格式异常。API 将告诉您实际返回的内容。尝试/捕获块在这里不起作用。如果需要捕获错误,请考虑使用字符串的相等大小写(...)
。
使用JOptionPane。ShowInputDialog,我需要检查用户是否输入int,否则,JOptionPane应该返回错误消息,并提示用户输入正确的数据类型。 同时,如果用户点击取消节目则应返回主菜单。 对我如何做到这一点有什么建议吗?
我正在为java类的介绍进行分配,并且遇到了困难,问题如下: “要求用户输入一个数字。您应该使用一个输入对话框来进行此输入。请确保将对话框中的字符串转换为实数。程序需要跟踪用户输入的最小数字和输入的最大数字。询问用户是否要输入另一个数字。如果是,请重复此过程。如果不是,请输出用户输入。 当用户想要退出时,此程序在程序末尾输出最大和最小的数字。 此外,您的程序应该考虑到用户只输入一个数字的情况。在这
我是JAVA新手,我想我已经搜索了所有的问题,没有找到一个与我的问题相似的。 我想使用Math.random()生成随机数,以返回4个固定数。我想要得到的数字是:0、90、180和270。换句话说,我想要4个最小值为0、最大值为270、增量为90的数字。
我有一个基于对话框的MFC应用程序。我有一个隐藏的编辑控件,它有读取USB连接扫描仪输入的默认焦点。对话框上的所有其他控件都是只读的。但是当用户单击任何控件时,隐藏的编辑控件都会失去焦点。我如何解决这个问题,使这个隐藏的编辑控件有焦点,即使在用户单击对话框的任何地方。
我创建了以下类,用于输入用户的年龄,然后在控制台中显示适当的信息。 运行此程序时,控制台会询问“请输入您的年龄:”
问题内容: 使用java如何生成随机的字母数字字符串? 问题答案: 算法 要生成随机字符串,请连接从可接受的符号集中随机抽取的字符,直到字符串达到所需的长度为止。 实例 这是一些相当简单且非常灵活的代码,用于生成随机标识符。阅读以下信息以获取重要的应用笔记。 用法示例 为8个字符的标识符创建不安全的生成器: 为会话标识符创建一个安全的生成器: 创建具有易于阅读的代码的生成器以进行打印。字符串比完整