我想为程序做一个输入和输出对话框。我尝试使用扫描仪实用程序,但我一直遇到错误,因此我想通过一个内和输出对话框将其图形化。如何制作一个输入对话框,该对话框需要N和K,并在使用Binomkoeff方法的输出对话框中放出它?我如何在对话框中使用INT参数或围绕对话进行操作?
package aufgabe2;
import java.util.Scanner;
import javax.swing.JOptionPane;
public class aufgabe2
{
private static int binomkoeff(int n, int k)
{
if (k==0)
return 1;
else if (k>n-k)
return binomkoeff(n, n-k);
else
return binomkoeff(n-1, k-1)*n/k;
}
public static void main(String[] args)
{
//System.out.println(binomkoeff(6, 5));
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int k = sc.nextInt();
//I'd rather have an input dialog than Scanner
//System.out.println(binomkoeff(n, k));
JOptionPane.showMessageDialog (binomkoeff(n, k);
}
}
实际上没有问题。系统正在等待您的输入,只是尚未打开终端窗口。
当您使用System.in
时,控制台正在等待InputSream 从终端窗口。
另外,一个消息对话框不接受用户的输入 - 它仅显示消息。您应该使用InputDialog:
String input = JOptionPane.showInputDialog(null, "Enter two numbers:");
Scanner sc = new Scanner(input);
int n = sc.nextInt();
int k = sc.nextInt();
JOptionPane.showMessageDialog(null, ""+binomkoeff(n, k));
input
是被接受的字符串,即" 46 14"。
Scanner
将输入字符串分开为n
,该字符串变成46
和k
,它变为14
。
最后一行向用户显示消息,调用您想要的方法。