Java 多选JTable+;组合框(celleditor)和#x2B;点击
我有一个可以接受多重选择的表。在这个jtable上,我添加了一个列,我添加了一个组合框,如下所示:Java 多选JTable+;组合框(celleditor)和#x2B;点击,java,swing,jtable,renderer,Java,Swing,Jtable,Renderer,我有一个可以接受多重选择的表。在这个jtable上,我添加了一个列,我添加了一个组合框,如下所示: public void setPriorityEditor(final String columnName) { final TableColumn col = ((BasicTableModel) table.getModel()) .findTableColumn(columnName); col.setCellEditor(new Pr
public void setPriorityEditor(final String columnName) {
final TableColumn col = ((BasicTableModel) table.getModel())
.findTableColumn(columnName);
col.setCellEditor(new PriorityComboBoxEditor());
}
if (extend) {
super.changeSelection(rowIndex, columnIndex, toggle, extend);
listTest = new ArrayList<Object>();
for (int e : modelTable.getToolTipsJTable().getSelectedRows()) {
listTest.add(e);
}
isExtend = true;
} else {
// super.changeSelection(rowIndex, columnIndex, toggle, extend);
if (modelTable.getToolTipsJTable().getSelectedRows().length > 1) {
listTest = new ArrayList<Object>();
for (int e : modelTable.getToolTipsJTable()
.getSelectedRows()) {
listTest.add(e);
}
isExtend = true;
}
if (isExtend) {
boolean isSame = false;
for (Object i : listTest) {
if (((Integer) i).intValue() == rowIndex) {
isSame = true;
}
}
if (!isSame) {
isExtend = false;
super.changeSelection(rowIndex, columnIndex, toggle,
extend);
}
} else {
super
.changeSelection(rowIndex, columnIndex, toggle, extend);
}
}
我想实现一个新功能:
可以使用组合框更新多个字段,这是我选择的一部分。
我的问题开始于当我想选择一行,其中一部分在我的选择avec选择几行,选择是刷新,我现在只选择了一行。
可能吗
总结:
尝试使用多选更新几个列。
行包含带有组合框的列。
选择几行并使用combobox(它是选定行的一部分)来更新所有行特定列的值combobox
向大家致意。所以我在changeSelection()方法中更改代码如下:
public void setPriorityEditor(final String columnName) {
final TableColumn col = ((BasicTableModel) table.getModel())
.findTableColumn(columnName);
col.setCellEditor(new PriorityComboBoxEditor());
}
if (extend) {
super.changeSelection(rowIndex, columnIndex, toggle, extend);
listTest = new ArrayList<Object>();
for (int e : modelTable.getToolTipsJTable().getSelectedRows()) {
listTest.add(e);
}
isExtend = true;
} else {
// super.changeSelection(rowIndex, columnIndex, toggle, extend);
if (modelTable.getToolTipsJTable().getSelectedRows().length > 1) {
listTest = new ArrayList<Object>();
for (int e : modelTable.getToolTipsJTable()
.getSelectedRows()) {
listTest.add(e);
}
isExtend = true;
}
if (isExtend) {
boolean isSame = false;
for (Object i : listTest) {
if (((Integer) i).intValue() == rowIndex) {
isSame = true;
}
}
if (!isSame) {
isExtend = false;
super.changeSelection(rowIndex, columnIndex, toggle,
extend);
}
} else {
super
.changeSelection(rowIndex, columnIndex, toggle, extend);
}
}
if(扩展){
super.changeSelection(行索引、列索引、切换、扩展);
listTest=新的ArrayList();
对于(int e:modelTable.getToolTipsJTable().getSelectedRows()){
添加(e);
}
isExtend=true;
}否则{
//super.changeSelection(行索引、列索引、切换、扩展);
if(modelTable.getToolTipsJTable().getSelectedRows().length>1){
listTest=新的ArrayList();
for(int e:modelTable.getToolTipsJTable()
.getSelectedRows()){
添加(e);
}
isExtend=true;
}
如果(isExtend){
布尔值IsName=false;
for(对象i:listTest){
if(((整数)i).intValue()==行索引){
IsName=true;
}
}
如果(!IsName){
isExtend=false;
super.changeSelection(行索引、列索引、切换、,
扩展);
}
}否则{
超级的
.changeSelection(行索引、列索引、切换、扩展);
}
}
这只是为了分析,忘记了清洁度和性能:D
如果您需要更多信息,请添加评论。您好,英语可能不是您的第一语言,但您的问题很难理解。你能更新/澄清你的问题吗?谢谢Protip:输入你的母语并翻译,因为谷歌的功能现在非常好。是的,但是在你的应用程序的其他地方只有一个组合框,而不是每行复制一个组合框,这不是更有意义吗?这将为你们简化事情。是的,但用户也可以使用单行组合框。我无法更改基本设计。第一件事:我只想在选择作为多重选择一部分的行时禁用清除选择。我用jTable方法搜索,但没有找到。。。