假设我现在有一个jtable如下:
编号 姓名 省份 城市
1 datalover 湖北 武汉
2 sunlover 云南 昆明
问题:现在我要编辑这个表的城市属性,如果是 湖北 则在城市里面显示下拉列项为:
麻城
红安
黄州
黄梅如果是云南则显示的是
红河
玉溪
思茅
曲靖
等请问我要怎么去实现 城市这一列的 celleditor
编号 姓名 省份 城市
1 datalover 湖北 武汉
2 sunlover 云南 昆明
问题:现在我要编辑这个表的城市属性,如果是 湖北 则在城市里面显示下拉列项为:
麻城
红安
黄州
黄梅如果是云南则显示的是
红河
玉溪
思茅
曲靖
等请问我要怎么去实现 城市这一列的 celleditor
Tab_City
------------
CityID
CityName
省份
import java.awt.event.ActionListener;
import javax.swing.DefaultCellEditor;
import javax.swing.JFrame;
import javax.swing.JComboBox;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;public class tabletest implements ActionListener{
JComboBox jcb1=null;
JComboBox jcb2=null;
String[] s={"湖北","云南"};
String[][] ss={{"麻城","红安","武汉"},{"昆明","红河","玉溪"}};
tabletest(){
String[] header={"省份","城市"};
jcb2=new JComboBox();
jcb1=new JComboBox(s);
jcb1.addActionListener(this);
String[][] data={{"",""},{"",""}};
DefaultTableModel dtm=new DefaultTableModel(data,header);
JTable jt=new JTable(dtm);
jt.getColumnModel().getColumn(0).setCellEditor(new DefaultCellEditor(jcb1));
jt.getColumnModel().getColumn(1).setCellEditor(new DefaultCellEditor(jcb2));
JScrollPane sp=new JScrollPane(jt);
JFrame f=new JFrame();
f.getContentPane().add(sp);
f.setSize(300,300);
f.setVisible(true);
}
public static void main(String[] args) {
new tabletest();
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()==jcb1){
jcb2.removeAllItems();
int len=jcb1.getSelectedIndex();
System.out.println(len);
for(int i=0;i<ss[len].length;i++)
{jcb2.addItem(ss[len][i]);
System.out.println(ss[len][i]);
}
}
}}
import java.awt.event.ActionListener;
import javax.swing.DefaultCellEditor;
import javax.swing.JFrame;
import javax.swing.JComboBox;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;public class tabletest implements ActionListener{
JComboBox jcb1=null;
JComboBox jcb2=null;
String[] s={"湖北","云南"};
String[][] ss={{"麻城","红安","武汉"},{"昆明","红河","玉溪"}};
tabletest(){
String[] header={"省份","城市"};
jcb2=new JComboBox();
jcb1=new JComboBox(s);
jcb1.addActionListener(this);
String[][] data={{"",""},{"",""}};
DefaultTableModel dtm=new DefaultTableModel(data,header);
JTable jt=new JTable(dtm);
jt.getColumnModel().getColumn(0).setCellEditor(new DefaultCellEditor(jcb1));
jt.getColumnModel().getColumn(1).setCellEditor(new DefaultCellEditor(jcb2));
JScrollPane sp=new JScrollPane(jt);
JFrame f=new JFrame();
f.getContentPane().add(sp);
f.setSize(300,300);
f.setVisible(true);
}
public static void main(String[] args) {
new tabletest();
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()==jcb1){
jcb2.removeAllItems();
int len=jcb1.getSelectedIndex();
System.out.println(len);
for(int i=0;i<ss[len].length;i++)
{jcb2.addItem(ss[len][i]);
System.out.println(ss[len][i]);
}
}
}}