2017-12-16 12 views
-1

私のプログラムの入力と出力のダイアログを作りたいと思います。 Scannerユーティリティを使用しようとしましたが、エラーが発生し続けるため、入出力ダイアログでグラフィカルにしたいと考えています。 binomkoeffメソッドを使用している出力ダイアログでnとkを入力して入力ダイアログを作成するにはどうすればよいですか?どのようにして、ダイアログで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); 



    } 
} 
+0

"スキャナを使用しようとしましたが、エラーが発生しています。"おそらく、あなたの質問に完全なスタックトレースを追加することで、エラーを修正することにエネルギーを入れてください。グラフィカルユーザーインターフェイスは、知識の重要な新しい領域です。 – VGR

答えて

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" 受け入れた文字列です。

Scanner14なる46kとなるnに入力文字列を分離します。

最後の行は、ユーザーにメッセージを表示し、必要なメソッドを呼び出します。

関連する問題