2016-05-24 11 views
0

情報を取得しようとすると、情報はsystem.out.print ln()ステートメントから印刷されません。メソッドを使って情報を出力する方法を変更する方法はわかりません。ダイアログボックスの情報を返す

package TESTCODe; 
import java.awt.Component; 
import javax.swing.Icon; 
import javax.swing.JOptionPane; 
public class TESTCODe { 
private static Component frame; 
private static Icon icon; 
public static void main(String[] args) { 
int selection=0; 
    int menu = read_menu(); 
    while(selection!=3) 
    {  if(selection==1) 
     { System.out.println("random");   } 
    else 
     if(selection==2) 
      {System.out.println("WH form");    } 
     menu=read_menu(); 
    }   System.out.println("Exiting"); 
System.exit(0); 
    } public static int read_menu() 
{  int selection=0; 
    Object[] possibilities = {"test1", "test2", "Exit"}; 
    String s = (String)JOptionPane.showInputDialog(
         frame,"Choose a form", 
       "Form",JOptionPane.PLAIN_MESSAGE,icon, 
         possibilities,"test1"); 

if(s.equals("test1")) 
    {   selection=Integer.parseInt(s); 
     selection=1; 
    } 
    else 
     if(s.equals("Wh")) 
     {    selection=Integer.parseInt(s); 
      selection=2; 
     } 
     else 
      if(s.equals("Exit")) 
      {     selection=Integer.parseInt(s); 
       selection=3; 
      }return selection; 
    } 
} 

何か助けが必要です。で

int menu = read_menu(); 

selection = read_menu(); 

理由:あなたが "選択" の値を印刷しているが、あなたはread_menuから戻るint型が割り当てられている()

+0

インデントをクリーンアップします。 sが文字列 "Air Conditioning"であるかどうかを確認し、そうであればそれをintとして解析しようとしますか?また、あなたのメインで 'selection = 0'を設定し、その値が0から何も変更されずに1または2であるかどうかをチェックします。 – FredK

答えて

0

は、次の行を交換していただきありがとうございます機能を「メニュー」に設定します。したがって、あなたは上記の交換を行う必要があります。

あなたの主なメソッドから次の行を削除します。

menu=read_menu(); 

理由:あなたはそう、あなたの場合は...他のforループもするSystem.out.printlnを使用して印刷するための「メニュー」変数を使用していませんなぜそれを使用するのですか?

とread_menu()関数からのすべての

selection=Integer.parseInt(s); 

行を削除します。

理由:次の手順で選択範囲をint値に設定しているため、この行は役に立たず、文字列をintに変換しようとしているため、エラーが発生する可能性があります。

このように、コードは期待どおりに動作するはずです。

+0

これは私を助けてくれてありがとうございました。 – mattps8

関連する問題