Swing中Jtable的點擊問題 Swing中的Jtable中要輸入值,如果用方向鍵控制的話,要按兩下才能輸入進去 jctable也一樣,這個問題在加cellEditor的時候也會出現,把某個cell變成combobox或者JtextField的時候 都要點兩下才能進行想要的操作, 有沒有人知道這個怎么解決 還是Swing就是有這樣的一個小瑕疵? 謝謝 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 此回复为自动发出,仅用于显示而已,并无任何其他特殊作用楼主【horizonlyhw】截止到2008-07-28 15:40:41的历史汇总数据(不包括此帖):发帖的总数量:17 发帖的总分数:1010 每贴平均分数:59 回帖的总数量:134 得分贴总数量:63 回帖的得分率:47% 结贴的总数量:17 结贴的总分数:1010 无满意结贴数:0 无满意结贴分:0 未结的帖子数:0 未结的总分数:0 结贴的百分比:100.00% 结分的百分比:100.00% 无满意结贴率:0.00 % 无满意结分率:0.00 % 敬礼! 不是的,你理解错了!第一下是点选所在行,第二下才是进入cell的编辑状态! 你认为这样不好的话,也可以改成点击一下就进入编辑,但新的问题又会出来,你测试下就明白啦! 怎么一下就進入編輯狀態呢 ? 會出現什么問題 ~我感覺像excel那樣就好啊~ Excel点一下鼠标是选择单元格,双击才是编辑,呵呵 你参看DefaultCellEditor元代码就知道了! 要更改的话,只要覆盖源码的方法就OK! 那jtable能不能實現像excel那樣~ ? DefaultTableModel dtm = new DefaultTableModel(col, 0) { public boolean isCellEditable(int rowindex, int columnindex) { return true;//单元格能被编辑,false则不能 }};JTable jt = new JTable(dtm);private void addListener() { jt.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { jtChick(e); } });}private void jtChick(MouseEvent e){ int row = jt.rowAtPoint(e.getPoint()); int col = jt.columnAtPoint() dtm.setValueAt("你要设置的值",row,col);} public static void setEditing(JTable tb) { int selectingrow = tb.getSelectedRow(); int selectingcol = tb.getSelectedColumn(); if (selectingrow < 0 ||selectingcol<0) return; if (!tb.isCellEditable(row,col)) return; JTextField jText = (JTextField) ( (DefaultCellEditor) tb.getCellEditor(row,col)).getComponent(); jText.requestFocus(); jText.selectAll();} 呵呵,JTable有一个方法设置成true就可以了.就不用双击后才能进行编辑了.setSurrendersFocusOnKeystroke(true); //键击导致编辑器被激活时编辑器应该获得焦点setSurrendersFocusOnKeystrokepublic void setSurrendersFocusOnKeystroke(boolean surrendersFocusOnKeystroke)设置由于 JTable 为某个单元格转发键盘事件而导致编辑器被激活时,此 JTable 中的编辑器是否获得键盘焦点。默认情况下,此属性为 false,且 JTable 保留焦点,除非单击了单元格。 参数:surrendersFocusOnKeystroke - 如果在键击导致编辑器被激活时编辑器应该获得焦点,则为 true setSurrendersFocusOnKeystroke jtable有這個方法么?? 定14楼的建议设表格的编辑器设成textfiled然后再给textfiled设上监听就可以了 问大家关于j2se的IO流的问题? 初学者请教,这是怎么回事? 在线等待:这个类偶在JSP里不会调用了,求肋。。。。(这是个加密的类) 简单问题,是大侠一定没问题! installanywhere制作安装程序的问题!找不到main class?急!多指教! 关于setXXXX()方法的问题 专家问题(保证大家感兴趣) 高手进来看看这个问题 我在JPenel中设置字体,但字体不会发生改变,为什么? swing请教!!!!! 难道做这方面的人就这么少 compareTo的問題
楼主【horizonlyhw】截止到2008-07-28 15:40:41的历史汇总数据(不包括此帖):
发帖的总数量:17 发帖的总分数:1010 每贴平均分数:59
回帖的总数量:134 得分贴总数量:63 回帖的得分率:47%
结贴的总数量:17 结贴的总分数:1010
无满意结贴数:0 无满意结贴分:0
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:100.00%
无满意结贴率:0.00 % 无满意结分率:0.00 %
敬礼!
我感覺像excel那樣就好啊~
DefaultTableModel dtm = new DefaultTableModel(col, 0) {
public boolean isCellEditable(int rowindex, int columnindex) {
return true;//单元格能被编辑,false则不能
}
};
JTable jt = new JTable(dtm);private void addListener() {
jt.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
jtChick(e);
}
});
}private void jtChick(MouseEvent e){
int row = jt.rowAtPoint(e.getPoint());
int col = jt.columnAtPoint()
dtm.setValueAt("你要设置的值",row,col);
}
public static void setEditing(JTable tb) {
int selectingrow = tb.getSelectedRow();
int selectingcol = tb.getSelectedColumn();
if (selectingrow < 0 ||selectingcol<0)
return; if (!tb.isCellEditable(row,col))
return; JTextField jText = (JTextField) ( (DefaultCellEditor) tb.getCellEditor(row,col)).getComponent();
jText.requestFocus();
jText.selectAll();
}
public void setSurrendersFocusOnKeystroke(boolean surrendersFocusOnKeystroke)设置由于 JTable 为某个单元格转发键盘事件而导致编辑器被激活时,此 JTable 中的编辑器是否获得键盘焦点。默认情况下,此属性为 false,且 JTable 保留焦点,除非单击了单元格。 参数:
surrendersFocusOnKeystroke - 如果在键击导致编辑器被激活时编辑器应该获得焦点,则为 true