4

メートル法とインペリアル法の2つのボタンがあるJOptionPaneを使用してshowOptionDialogを作成したいと思います。たとえば、メトリックがクリックされると、メトリックGUIがロードされます。逆に、Imperialをクリックすると、ImperialGUIがロードされます。

どうすればよいですか?どうもありがとう。

4

3 に答える 3

12
int choice = JOptionPane.showOptionDialog(null, //Component parentComponent
                               "Metric or Imperial?", //Object message,
                               "Choose an option", //String title
                               JOptionPane.YES_NO_OPTION, //int optionType
                               JOptionPane.INFORMATION_MESSAGE, //int messageType
                               null, //Icon icon,
                               {"Metric","Imperial"}, //Object[] options,
                               "Metric");//Object initialValue 
if(choice == 0 ){
   //Metric was chosen
}else{
   //Imperial was chosen
}
于 2012-11-20T18:39:12.027 に答える
1
Object[] options = {"Metric","Imperial"};
int n = JOptionPane.showOptionDialog(null,
            "A Message",
            "A Title",
            JOptionPane.YES_NO_CANCEL_OPTION,
            JOptionPane.DEFAULT_OPTION,
            null,
            options,
            options[1]);  

System.out.println(n);  

JFrame metric = new JFrame("Metric");  
metric.setBounds(0, 0, 320, 240);  

JFrame imperial = new JFrame("Imperial");  
imperial.setBounds(0, 0, 320, 240);  

if(n==0){  
     metric.setVisible(true);  
}else if(n==1){
    imperial.setVisible(true);
}else{
    System.out.println("no option choosen");
}
于 2012-11-20T18:49:13.427 に答える
0

http://docs.oracle.com/javase/tutorial/uiswing/components/dialog.htmlをチェックしてください。必要なものがほぼすべて揃っています。

「私が理解しているように、JOptionPaneはそれができることには優れていますが、それ以上の機能を実際に変更することはできません(簡単ではありません)。独自のカスタムダイアログを作成する場合は、JDialogを継承することをお勧めします。」

于 2012-11-20T18:39:02.200 に答える