メートル法とインペリアル法の2つのボタンがあるJOptionPaneを使用してshowOptionDialogを作成したいと思います。たとえば、メトリックがクリックされると、メトリックGUIがロードされます。逆に、Imperialをクリックすると、ImperialGUIがロードされます。
どうすればよいですか?どうもありがとう。
メートル法とインペリアル法の2つのボタンがあるJOptionPaneを使用してshowOptionDialogを作成したいと思います。たとえば、メトリックがクリックされると、メトリックGUIがロードされます。逆に、Imperialをクリックすると、ImperialGUIがロードされます。
どうすればよいですか?どうもありがとう。
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
}
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");
}
http://docs.oracle.com/javase/tutorial/uiswing/components/dialog.htmlをチェックしてください。必要なものがほぼすべて揃っています。
「私が理解しているように、JOptionPaneはそれができることには優れていますが、それ以上の機能を実際に変更することはできません(簡単ではありません)。独自のカスタムダイアログを作成する場合は、JDialogを継承することをお勧めします。」