
//:ComboBoxTextjava
import javaawtFlowLayout;
import javaawteventActionEvent;
import javaawteventActionListener;
import javaxswingJComboBox;
import javaxswingJFrame;
public class ComboBoxText {
private String[][] xxx = {
{"浙江","杭州","温州","绍兴","舟山",},
{"江苏","南京","无锡","徐州","蒙眬",},
{"上海","闵行区","普陀区","金山区",},
};
private Object[] a(){
Object[] os = new Object[xxxlength];
for(int i=0; i<xxxlength; i++){
os[i]=xxx[i][0];
}
return os;
}
private Object[] b(Object a){
for(int i=0; i<xxxlength; i++){
if(xxx[i][0]equals(a)){
Object[] o = new Object[xxx[i]length-1];
for(int j=0; j<olength; j++)
o[j]=xxx[i][j+1];
return o;
}
}
return new Object[]{};
}
public static void main(String[] args) {
final ComboBoxText ct = new ComboBoxText();
final JComboBox ca = new JComboBox(cta());
final JComboBox cb = new JComboBox();
caaddActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
cbremoveAllItems();
Object selected = cagetSelectedItem();
Object[] newItems = ctb(selected);
for(int i=0; i<newItemslength; i++)
cbaddItem(newItems[i]);
}
});
casetSelectedIndex(-1);
JFrame f = new JFrame();fsetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);
fgetContentPane()setLayout(new FlowLayout(FlowLayoutLEFT));
fadd(ca);fadd(cb);fsetVisible(true);
fsetSize(200,100);
}
}
DateDropFrame extends JFrame
给year和month添加一个ItemListener来实时计算指定年和月中有多少天就可以了
代码是用Swing写的,不过看你的图,不像是Swing界面
/
Create the frame
/
public DateDropFrame() {
setDefaultCloseOperation(JFrameEXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPanesetBorder(new EmptyBorder(5, 5, 5, 5));
contentPanesetLayout(new FlowLayout(FlowLayoutLEFT));
final JComboBox year = new JComboBox();
yearsetModel(new DefaultComboBoxModel(getModel(start, end)));
contentPaneadd(year);
final JComboBox month = new JComboBox();
monthsetModel(new DefaultComboBoxModel(getModel(1, 12)));
contentPaneadd(month);
final JComboBox day = new JComboBox();
contentPaneadd(day);
yearaddItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
setDay(year, month, day);
}
});
monthaddItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
setDay(year, month, day);
}
});
setDay(year, month, day);
setContentPane(contentPane);
}
/
calculate days in select month & year
/
private void setDay(JComboBox year, JComboBox month, JComboBox day) {
int y = IntegerparseInt((String) yeargetSelectedItem());
int m = IntegerparseInt((String) monthgetSelectedItem());
Calendar c = CalendargetInstance();
cset(CalendarYEAR, y);
cset(CalendarMONTH, m - 1);
int days = cgetActualMaximum(CalendarDAY_OF_MONTH);
daysetModel(new DefaultComboBoxModel(getModel(1, days)));
}
/
get String array [start, end]
/
private String[] getModel(int start, int end) {
String[] m = new String[end - start + 1];
for (int i = 0; i < mlength; i++) {
m[i] = StringvalueOf(i + start);
}
return m;
}
可以通过getSelectedItem方法获取到当前的值。
举例:
List<City> listCity = new ArrayList<City>();
listCityadd(new City("北京",1));
listCityadd(new City("上海",2));
listCityadd(new City("广州",3));
JComboBox jcbCity = new JComboBox(listCitytoArray());
//取得当前选中的City 的名字
City selectedCity =(City) jcbCitygetSelectedItem();
String cityName = selectedCitygetName();
以上就是关于java swing下拉框两级联动全部的内容,包括:java swing下拉框两级联动、如何直接用java Swing写日期下拉列表框、java swing 选择框(JComboBox)获得值得办法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)