我是靠谱客的博主 动听樱桃,最近开发中收集的这篇文章主要介绍java jtable 单元格编辑_JTable中单元格编辑的问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我在JTable中使用单元格编辑遇到了一些麻烦 .

首先,我创建了一个函数来处理按下ENTER时的水平滚动,当它到达最后一列时,它再次从下一列的第一个单元格开始 . 这很好但问题是,当我单击一个单元格并使其成为 editable 时,ENTER不会触发Action(我必须将其推两次,一次用于停止编辑,第二次用于开始编辑下一个单元格) . 它仅识别在选择单元格时按下ENTER(仅限第一次) . 在此之后,当我继续按ENTER时,即使单元格可编辑,也会始终触发Action .

另一方面,我有一个单元格监听器,可以在编辑某些单元格时执行某些操作,但在按下ENTER时始终会触发两次 .

那么,有什么建议吗?我希望我已经清楚地解释了这一点 .

datosTabla = new Object[10][columnas_tabla.length];

modelo = new DefaultTableModel(datosTabla, columnas_tabla);

tabla = new JTable(modelo);

CellEditorListener changeNotification = new CellEditorListener() {

public void editingCanceled(ChangeEvent e) {

}

public void editingStopped(ChangeEvent e) {

System.out.println("Do stuff");

}

};

tabla.getDefaultEditor(Object.class).addCellEditorListener(changeNotification);

Action handleEnter = new AbstractAction() {

public void actionPerformed(ActionEvent e) {

int row = tabla.getSelectedRow();

int col = tabla.getSelectedColumn();

if (col < modelo.getColumnCount() - 1){

col++;

} else {

row++;

col = 0;

}

tabla.changeSelection(row, col, false, false);

tabla.editCellAt(row, col);

}

};

tabla.getInputMap().put(KeyStroke.getKeyStroke("ENTER"), "handleEnter");

tabla.getActionMap().put("handleEnter", handleEnter);

最后

以上就是动听樱桃为你收集整理的java jtable 单元格编辑_JTable中单元格编辑的问题的全部内容,希望文章能够帮你解决java jtable 单元格编辑_JTable中单元格编辑的问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部