java swing下拉框两级联动

java swing下拉框两级联动,第1张

//: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)获得值得办法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9622879.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存