我想創建一個算命器,讓你從一個JCombobox中選擇一種顏色,然後讓你根據你選擇的顏色從另一個JCombobox中選擇一個數字。例如,如果我選擇「紅色」或「黃色」,則顯示這組#號 - {1,3,4,7}。但是,如果我選擇「藍色」或「綠色」,則顯示這組#號 - {2,6,8,5}。一旦選擇了一個數字,我希望在屏幕底部的狀態欄(JLabel)上顯示與該數字關聯的「財富數組」的財富。這是到目前爲止我的代碼: -如何從JComboBox中選擇項目時讓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);
}
}
參見本[Q&A](http://stackoverflow.com/q/3191837/230513) 。 – trashgod
所以如果我理解正確,你想要做什麼取決於從組合框中選擇什麼,你想將標籤的文本設置爲財富數組中的一個項目? – Michael
什麼工作?什麼不?該計劃到目前爲止做了什麼? – Puce