Java JTable 如何让表格单击单元格后就进入编辑状态

默认下新建的JTable单击单元格后不进如编辑状态虽然单击后输入(英文或数字)后会进入编辑状态但是打开输入法输入则无效所以我想知道怎样才能使单元格单击后就进入编辑状态即单... 默认下新建的JTable单击单元格后不进如编辑状态 虽然单击后输入(英文或数字)后会进入编辑状态 但是打开输入法输入则无效

所以我想知道怎样才能使单元格单击后就进入编辑状态 即单元格获得光标(焦点)?
zoulixing1984 你的方法最好 但是进入编辑状态后并没有获得光标 请问如何解决
展开
 我来答
怀新垒fb
推荐于2018-02-28 · TA获得超过378个赞
知道小有建树答主
回答量:391
采纳率:100%
帮助的人:357万
展开全部
这个简单:如果按楼上的人的方法,会害死你不可,2楼的绝对不行,我刚开始也这样,现在想想,真的要看JAVA的原代码了

jTable1 = new javax.swing.JTable(){
public void changeSelection(int rowIndex, int columnIndex,
boolean toggle, boolean extend){
super.changeSelection(rowIndex, columnIndex, toggle, extend);
super.editCellAt(rowIndex, columnIndex, null);
}
};

这样后jTable1 对象只要单击就进入编辑状态;
因为JTable每次都会自动的调用changeSelection方法,不需要你判断是否有焦点

你肯定还会遇到,JTable没把焦点取消,单元格的数据无法保存,
if(jTable.isEditing()){
jTable.getCellEditor().stopCellEditing();
}

----------补充-------

不是可以输中文了吗?具体有没有光标很重要吗?

我的QQ:7706189,加我说明是那个问题
1997排长
高粉答主

2016-01-11 · 说的都是干货,快来关注
知道大有可为答主
回答量:1.1万
采纳率:0%
帮助的人:762万
展开全部
需要重写JTable 的 isCellEditable 方法。

如下,继承JTable,使指写的行列,在isCellEditable方法中返回是false即可使之不可编辑。
Class MyTable extends JTable{
public boolean isCellEditable(int row,int col){
}
}
具体逻辑有些麻烦。需要做出一个二维数组来记录。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lyy51120
推荐于2018-02-07
知道答主
回答量:89
采纳率:0%
帮助的人:0
展开全部
有个问题
现在情况是: 比如当前编辑的单元格位(row, col)
当单元格编辑结束(按回车),要对数据作检查,检查不通过,会出dialog,然后要求进入到下一个单元格(row, col + 1)进入编辑状态

现在代码如下,是在对单元格(row,col)作了事件监听,然后出了dialog:
showDialog();
table.requestFocus();
table.editCellAt(row, col+1); //(*)
table.changeSelection(row, col+1, true, true); //(**)

现象是,不论*,或**行次序变化,屏幕出了dialog后,table的单元格(row, col)进入编辑状态,而不是(row, col+1)进入编辑状态
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
楼市酒客
2009-06-07
知道答主
回答量:29
采纳率:0%
帮助的人:0
展开全部
有单击事件和双击事件
在着两个时间中写方法就可以实现你说的功能

具体怎么操作看JAVA相关文档
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式