问题描述
通常的JComboBox在获得焦点时按空格键会显示下拉框,但是JTable里的JComboBox,按空格键没有反应这是为什么有没有办法实现JTable里的JComboBox也能在按空格键会显示下拉框附实例代码publicclassT1extendsJComboBoximplementsTableCellRenderer{publicT1(){setBorder(BorderFactory.createEmptyBorder());addActionListener(newActionListener(){@OverridepublicvoidactionPerformed(ActionEvente){//TODO自動生成されたメソッド・スタブSystem.out.println("gggg");}});}publicstaticvoidmain(String[]args){JFramef=newJFrame();//try{//UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());//}catch(Exceptione){//e.printStackTrace();//}JComboBoxcomboBox=newJComboBox();comboBox.setBorder(BorderFactory.createEmptyBorder());comboBox.addItem("Item-1");comboBox.addItem("Item-2");comboBox.addItem("Item-3");comboBox.addItem("Item-4");//comboBox.addItem("Item-5");comboBox.setFocusable(true);DefaultCellEditoreditor=newDefaultCellEditor(comboBox);JTabletable=newJTable(5,5);table.getColumnModel().getColumn(0).setCellRenderer(newT1());table.getColumnModel().getColumn(0).setCellEditor(editor);JScrollPanesp=newJScrollPane(table);f.getContentPane().add(sp,BorderLayout.CENTER);JComboBoxcmb1=newJComboBox();cmb1.setBorder(BorderFactory.createEmptyBorder());cmb1.addItem("Item-1");cmb1.addItem("Item-2");cmb1.addItem("Item-3");cmb1.addItem("Item-4");cmb1.addItem("Item-5");//cmb1.setFocusable(true);f.getContentPane().add(cmb1,BorderLayout.SOUTH);JComboBoxcmb2=newJComboBox();cmb2.setBorder(BorderFactory.createEmptyBorder());cmb2.addItem("Item-1");cmb2.addItem("Item-2");cmb2.addItem("Item-3");cmb2.addItem("Item-4");cmb2.addItem("Item-5");cmb2.setFocusable(true);f.getContentPane().add(cmb2,BorderLayout.NORTH);f.pack();f.setLocationRelativeTo(null);f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setVisible(true);}publicComponentgetTableCellRendererComponent(JTabletable,Objectvalue,booleanisSelected,booleanhasFocus,introw,intcolumn){this.removeAllItems();this.addItem(value);returnthis;}}