其实java提供了很多方法来展示界面,比如JTable里面再加入JComboBox,这样一个单元格选中那么这一行就可以填充。
package com.yw.test01;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.DefaultCellEditor;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
public class Test implements ItemListener{
public static void main(String[] args) {
new Test().init();
}
private void init() {
JFrame jf = new JFrame("test");
Object[][] obj = { { "a1", "male", "11" }, { "b1", "female", "12" },
{ "c1", "male", "14" } };
Object[][] obj2 = {{"","",""}};
Object[] colname = { "name", "sex", "age" };
DefaultTableModel dataModel = new DefaultTableModel();
// dataModel.setDataVector(obj, colname);
Object[] nameobj={"请选择","a1","b1","c1"};
JComboBox combox=new JComboBox(nameobj);
// combox.addActionListener(this);
combox.addItemListener(this);
dataModel.setDataVector(obj2, colname);
JTable table = new JTable(dataModel);
table.getColumn("name").setCellEditor(new DefaultCellEditor(combox));
JScrollPane scrollpane = new JScrollPane(table);
jf.add(scrollpane);
jf.setSize(300, 300);
jf.setLocationRelativeTo(null);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void itemStateChanged(ItemEvent e) {
// TODO Auto-generated method stub
//System.out.println(e);
if(e.getStateChange()==e.SELECTED)
{
System.out.println(e.getItem());
}
}
}