解决方案和方法的图形输入和输出

时间:2017-12-16 17:52:41

标签: java dialog user-input

我想为我的程序创建一个输入和输出对话框。我已经尝试使用扫描仪实用程序,但我一直收到错误,所以我想通过输入和输出对话框使其成为图形。如何创建一个带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);



    }
}

1 个答案:

答案 0 :(得分:0)

实际上没有问题。系统正在等待您的输入,只是终端窗口尚未打开。

当您使用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,其变为46k变为14

最后一行向用户显示消息,调用您想要的方法。