JTable里的JComboBox在按空格键时不能显示下拉框

zaghost 2015-03-02 04:21:57
通常的JComboBox在获得焦点时按空格键会显示下拉框,
但是JTable里的JComboBox,按空格键没有反应
这是为什么
有没有办法实现JTable里的JComboBox也能在按空格键会显示下拉框

附实例代码


public class T1 extends JComboBox implements TableCellRenderer {
public T1() {
setBorder(BorderFactory.createEmptyBorder());

addActionListener(new ActionListener(){

@Override
public void actionPerformed(ActionEvent e) {
// TODO 自動生成されたメソッド・スタブ
System.out.println("gggg");
}

});

}

public static void main(String[] args) {

JFrame f = new JFrame();

// try {
// UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
// } catch (Exception e) {
// e.printStackTrace();
// }

JComboBox comboBox = new JComboBox();
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);

DefaultCellEditor editor = new DefaultCellEditor(comboBox);


JTable table = new JTable(5, 5);
table.getColumnModel().getColumn(0).setCellRenderer(new T1());
table.getColumnModel().getColumn(0).setCellEditor(editor);

JScrollPane sp = new JScrollPane(table);

f.getContentPane().add(sp, BorderLayout.CENTER);

JComboBox cmb1 = new JComboBox();
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);

JComboBox cmb2 = new JComboBox();
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);
}

public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
int row, int column) {
this.removeAllItems();
this.addItem(value);

return this;
}
}
...全文
102 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧