ある JCombobox から色を選択し、選択した色に応じて別の JCombobox から数字を選択できる占い師を作成しようとしています。たとえば、「赤」または「黄」を選択すると、この一連の # が表示されます - {1,3,4,7}。ただし、「青」または「緑」を選択すると、この一連の # が表示されます - {2,6,8,5}。数字が選択されたら、画面下部のステータスバー (JLabel) にその数字に関連付けられている「フォーチュン配列」からフォーチュンを表示したいと思います。これはこれまでの私のコードです:-
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
public class Example2 extends JFrame implements ItemListener {
private JComboBox maincombobox;
private JComboBox subcombobox;
private JLabel labels;
public Example2(){
String[] items = {"Select a Color","Red","Blue","Yellow","Green"};
maincombobox = new JComboBox(items);
maincombobox.addItemListener(this);
getContentPane().add(maincombobox);
subcombobox = new JComboBox();
subcombobox.addItemListener(this);
subcombobox.setEnabled(true);
subcombobox.setPrototypeDisplayValue("XXXXXXXXXXXXX");
getContentPane().add(subcombobox,BorderLayout.EAST);
labels = new JLabel("Default");
getContentPane().add(labels, BorderLayout.SOUTH);
}
public void itemStateChanged(ItemEvent e) {
String[] subitems1 = {"Choose a number","1","3","4","7"};
String[] subitems2= {"Choose a number","2","6","8","5"};
String[] fortune = {"Today is you lucky day", "You will get strange looks from people", "Don't touch your left foot today",
"You will forget a crucial thing today", "You will meet a mysterious person", "Will win a million dollars",
"Good day in the financial market", "Get a life","Think hard, you will find the answer"};
if (e.getSource() == maincombobox) {
if (maincombobox.getSelectedItem().equals("Select a Color")) {
subcombobox.setEnabled(false);
}
else if (maincombobox.getSelectedItem().equals("Red") ||
maincombobox.getSelectedItem().equals("Yellow") ){
subcombobox.setEnabled(true);
subcombobox.removeAllItems();
for (int i = 0; i < subitems1.length; i++) {
subcombobox.addItem(subitems1[i]);
}
}
else if (maincombobox.getSelectedItem().equals("Blue") ||
maincombobox.getSelectedItem().equals("Green") ){
subcombobox.setEnabled(true);
subcombobox.removeAllItems();
for (int i = 0; i < subitems2.length; i++) {
subcombobox.addItem(subitems2[i]);
}
}
}
}
public static void main(String[] args){
JFrame frame = new Example2();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300,200);
frame.setVisible(true);
frame.setLocationRelativeTo(null);
}
}