我在JOptionePane
上进行双输入以计算矩形的面积。所以我需要用户将length
和width
放在一起。但是,在第一次输入之后,我立即放置了一个阅读器,并且第二个JOptionPane
的宽度没有弹出。我意识到这需要很多工作。
import java.util.Scanner;
import javax.swing.JOptionPane;
public class Project3_1 {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
int length;
int width;
int surfacearea;
JOptionPane.showInputDialog("Enter the length of the edge: ");
length = reader.nextInt(); // doesnt work past this
JOptionPane.showInputDialog("Enter the width of the edge: ");
width = reader.nextInt();
surfacearea = length * width;
JFrame someFrame = new JFrame(); // how to insert surfacearea??
JLabel label = new JLabel();
someFrame.add(label);
someFrame.setSize(230, 230);
someFrame.setVisible(true);
}
}
答案 0 :(得分:1)
你必须像这样处理JOptionPane
的输入:
String inputLength = JOptionPane.showInputDialog("Enter the length of the edge: ");
int length = Integer.parseInt(inputLength);
删除Scanner
,因为他正在等待控制台中的输入。
答案 1 :(得分:1)
您正在混合向程序输入数据的方式。让我们开始吧:
Scanner reader = new Scanner(System.in);
上面的行允许您从键盘捕获命令行中的数据。
JOptionPane.showInputDialog("Enter the length of edge: ");
此选项窗格正确显示,您输入一个值,然后没有任何反应。这是因为您的程序正在等待在命令行
中输入内容length=reader.nextInt();
当您的程序到达上面一行时, reader.nextInt()
会停止该程序,直到您在命令行中输入内容为止。
正确的方法应该是这样的:
length = Integer.parseInt(JOptionPane.showInputDialog("Enter the length of the edge: "));
width = Integer.parseInt(JOptionPane.showInputDialog("Enter the width of the edge:"));
并删除:
length = reader.nextInt();
width = reader.nextInt();