Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java try/catch JOptionPane出现问题,需要捕获不正确的Int_Java_Try Catch_Joptionpane - Fatal编程技术网

java try/catch JOptionPane出现问题,需要捕获不正确的Int

java try/catch JOptionPane出现问题,需要捕获不正确的Int,java,try-catch,joptionpane,Java,Try Catch,Joptionpane,有点被这个问题困住了,但是我如何让我的try-catch只允许字符串进入输入框呢。(这里的相关代码位于底部,很抱歉,对于图形编程来说,混乱的格式仍然是全新的) 我原以为下面的代码可以工作,但我猜不行,现在我不太确定是否能捕获sting输入中的所有int,因为那里的int是作为字符串输入的。我试着使用布尔值,但这并没有真正起作用。此外,如果您可以查看电子邮件try/catch,也可以在出现@标志时弹出错误框,因为它有点类似。 谢谢 导入java.awt.Color; 导入java.awt.Dime

有点被这个问题困住了,但是我如何让我的try-catch只允许字符串进入输入框呢。(这里的相关代码位于底部,很抱歉,对于图形编程来说,混乱的格式仍然是全新的)

我原以为下面的代码可以工作,但我猜不行,现在我不太确定是否能捕获sting输入中的所有int,因为那里的int是作为字符串输入的。我试着使用布尔值,但这并没有真正起作用。此外,如果您可以查看电子邮件try/catch,也可以在出现@标志时弹出错误框,因为它有点类似。 谢谢

导入java.awt.Color;
导入java.awt.Dimension;
导入java.awt.Font;
导入java.awt.Graphics;
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
导入java.awt.event.KeyEvent;
导入java.util.ArrayList;
导入java.util.InputMismatchException;
导入javax.swing.JLabel;
导入javax.swing.JOptionPane;
导入javax.swing.JPanel;
导入javax.swing.Timer;
公共类主面板扩展了JPanel{
播放器myPlayer;
运动员;运动员;
私有整数宽度=1000;
私人内部高度=1000;
私人内部墙宽=100;
私人室内墙高=100;
私有ArrayList walls=新ArrayList();
字符串名;
字符串电子邮件;
内特法夫努姆;
Timer myTimer=新计时器(500,新timerListener());
JLabel-myTimeLabel;
整数时间=1;
公共主面板()
{
setPreferredSize(新尺寸(宽度、高度));
JLabel myLabel=新JLabel(“收到30秒后游戏结束:”);
setFont(新字体(“衬线”,字体粗体,32));
myLabel.setForeground(颜色:白色);
myTimeLabel=新的JLabel(Integer.toString(time));
myTimeLabel.setFont(新字体(“衬线”,字体粗体,32));
myTimer.start();
添加(myLabel);
添加(myTimeLabel);
myPlayer=newplayer(0100,“toad.png”,KeyEvent.VK_向上,KeyEvent.VK_向下,KeyEvent.VK_向左,KeyEvent.VK_向右,this,50,38);
myOtherPlayer=newplayer(200200,“toad.png”,KeyEvent.VK_W,KeyEvent.VK_S,KeyEvent.VK_A,KeyEvent.VK_D,this,50,38);
createWalls();
}
公共阵列列表getWalls(){
返回墙;
}
公共墙()
{
int j=0;
对于(int i=0;i
您应该使用来执行此操作,而不是捕获异常。有try-catch很好,但是您不应该将用户输入视为异常,因为您无论如何都应该检查它,例如:

String regex = "\\d+";
String input = JOptionPane.showInputDialog("What is your favorite number?");
if (!input.matches(regex)) {
   JOptionPane.showInputDialog("You entered a text, this only accepts numbers . Please enter your  favorite number");}
}

没有抛出异常,因此try块没有意义,最好创建一个方法,该方法接受提示,显示JOptionPane并返回字符串值。然后,您可以使用while循环来验证输入结果。请提供。(您希望从
paintComponent
中删除所有非绘制功能)
String regex = "\\d+";
String input = JOptionPane.showInputDialog("What is your favorite number?");
if (!input.matches(regex)) {
   JOptionPane.showInputDialog("You entered a text, this only accepts numbers . Please enter your  favorite number");}
}