www.pudn.com > JTable > Frame1.java


import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import javax.swing.event.*; 
import java.util.*; 
 
public class Frame1 extends JFrame { 
   private JPanel contentPane; 
   private BorderLayout borderLayout1 = new BorderLayout(); 
   private JScrollPane jScrollPane1 = new JScrollPane(); 
   final Hashtable hash=new Hashtable(); 
   private JTable jTable1 = new JTable(10,3){ 
       public void editingStopped(ChangeEvent e) { 
           int col=this.getEditingColumn(); 
           int row=this.getEditingRow(); 
           super.editingStopped(e); 
           if(col!=1){ 
               return; 
           } 
           setValueAt(hash.get(getValueAt(row,col)),row,2); 
       } 
   }; 
 
   //Construct the frame 
   public Frame1() { 
       enableEvents(AWTEvent.WINDOW_EVENT_MASK); 
       try { 
           jbInit(); 
       } 
       catch(Exception e) { 
           e.printStackTrace(); 
       } 
   } 
   //Component initialization 
   private void jbInit() throws Exception  { 
       //setIconImage(Toolkit.getDefaultToolkit().createImage(Frame1.class.getResource("[Your Icon]"))); 
       contentPane = (JPanel) this.getContentPane(); 
       contentPane.setLayout(borderLayout1); 
       this.setSize(new Dimension(400, 300)); 
       this.setTitle("Frame Title"); 
       contentPane.add(jScrollPane1, BorderLayout.CENTER); 
       jScrollPane1.getViewport().add(jTable1, null); 
       JComboBox comboBox= new JComboBox(); 
       comboBox.addItem("123"); 
       comboBox.addItem("456"); 
       comboBox.addItem("789"); 
 
       JComboBox comboBox1= new JComboBox(); 
       comboBox1.addItem("abc"); 
       comboBox1.addItem("efg"); 
       comboBox1.addItem("xyz"); 
       jTable1.getColumnModel().getColumn(1).setCellEditor(new MyCellEditor(comboBox,comboBox1)); 
 
       String sa[]={"123","456","789","abc","efg","xyz"}; 
       String sb[]={"123@AAAA","456@AAA","789@AAA","abc@AAA","efg@AAA","xyz@AAA"}; 
       for (int i = 0; i < sa.length; i++) { 
           hash.put(sa[i],sb[i]); 
       } 
   } 
   //Overridden so we can exit when window is closed 
   protected void processWindowEvent(WindowEvent e) { 
       super.processWindowEvent(e); 
       if (e.getID() == WindowEvent.WINDOW_CLOSING) { 
           System.exit(0); 
       } 
   } 
   class MyCellEditor extends DefaultCellEditor{ 
       DefaultCellEditor editor0,editor1; 
       int row = 0; 
       public MyCellEditor(JComboBox box0,JComboBox box1){ 
           super(box0); 
           editor0= new DefaultCellEditor(box0); 
           editor1= new DefaultCellEditor(box1); 
       } 
       public Object getCellEditorValue() { 
           if(row % 2 ==0){ 
               return editor0.getCellEditorValue(); 
           }else{ 
               return editor1.getCellEditorValue(); 
           } 
       } 
       public Component getTableCellEditorComponent(JTable table, Object value, 
               boolean isSelected, 
               int row, int column) { 
           this.row=row; 
           if(row % 2 == 0){ 
               return editor0.getTableCellEditorComponent(table,value,isSelected,row,column); 
           }else{ 
               return editor1.getTableCellEditorComponent(table,value,isSelected,row,column); 
           } 
       } 
   } 
   public static void main(String[] args) 
	{ 
	   Frame1 f = new Frame1(); 
	   f.pack(); 
	   f.show(); 
	} 
}