Swing中Jtable的點擊問題

horizonlyhw 2008-07-28 03:40:39
Swing中的Jtable中要輸入值,如果用方向鍵控制的話,要按兩下才能輸入進去 jctable也一樣,這個問題在加cellEditor的時候也會出現,把某個cell變成combobox或者JtextField的時候 都要點兩下才能進行想要的操作, 有沒有人知道這個怎么解決 還是Swing就是有這樣的一個小瑕疵? 謝謝
...全文
188 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
horizonlyhw 2008-08-07
  • 打赏
  • 举报
回复
頂頂
CSH_Hai 2008-08-05
  • 打赏
  • 举报
回复
路过,学习中~~
wzh0439 2008-08-05
  • 打赏
  • 举报
回复
你再鼠标监听那里判断一下鼠标点的是两次才能编辑如果是一次就返回……
horizonlyhw 2008-08-04
  • 打赏
  • 举报
回复
還有高手能指點指點么 ?
horizonlyhw 2008-08-04
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 wzh0439 的回复:]
定14楼的建议设表格的编辑器设成textfiled然后再给textfiled设上监听就可以了
[/Quote]

這個應該也是不行的~· 我現在的做法就是這樣 ~,但是還是要有點進去的那一下~
sword_88 2008-08-04
  • 打赏
  • 举报
回复
guoke!
wzh0439 2008-08-04
  • 打赏
  • 举报
回复
定14楼的建议设表格的编辑器设成textfiled然后再给textfiled设上监听就可以了
horizonlyhw 2008-07-31
  • 打赏
  • 举报
回复
setSurrendersFocusOnKeystroke jtable有這個方法么??
cpoysy 2008-07-31
  • 打赏
  • 举报
回复
呵呵,JTable有一个方法设置成true就可以了.就不用双击后才能进行编辑了.

setSurrendersFocusOnKeystroke(true); //键击导致编辑器被激活时编辑器应该获得焦点

setSurrendersFocusOnKeystroke
public void setSurrendersFocusOnKeystroke(boolean surrendersFocusOnKeystroke)设置由于 JTable 为某个单元格转发键盘事件而导致编辑器被激活时,此 JTable 中的编辑器是否获得键盘焦点。默认情况下,此属性为 false,且 JTable 保留焦点,除非单击了单元格。

参数:
surrendersFocusOnKeystroke - 如果在键击导致编辑器被激活时编辑器应该获得焦点,则为 true
shengli_liao 2008-07-31
  • 打赏
  • 举报
回复

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();
}
jayray007 2008-07-29
  • 打赏
  • 举报
回复

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);
}
zwgs1985 2008-07-29
  • 打赏
  • 举报
回复
...晕,没看懂
horizonlyhw 2008-07-28
  • 打赏
  • 举报
回复
那jtable能不能實現像excel那樣~ ?
jyq0105 2008-07-28
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 adown 的回复:]
这想下就知道了,无法选择行或多行! 点一下就进入编辑了,你还怎么选,所以要保留单点的功能!
[/Quote]
adown 2008-07-28
  • 打赏
  • 举报
回复
这想下就知道了,无法选择行或多行! 点一下就进入编辑了,你还怎么选,所以要保留单点的功能!
horizonlyhw 2008-07-28
  • 打赏
  • 举报
回复
會出現什么問題呢 · 先講講 謝謝哈~
adown 2008-07-28
  • 打赏
  • 举报
回复
你参看DefaultCellEditor元代码就知道了! 要更改的话,只要覆盖源码的方法就OK!
LexChen 2008-07-28
  • 打赏
  • 举报
回复
Excel点一下鼠标是选择单元格,双击才是编辑,呵呵
  • 打赏
  • 举报
回复
帮顶
horizonlyhw 2008-07-28
  • 打赏
  • 举报
回复
怎么一下就進入編輯狀態呢 ? 會出現什么問題 ~
我感覺像excel那樣就好啊~
加载更多回复(2)

62,614

社区成员

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

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