Java 不使用键盘,仅使用鼠标,即可进行多项选择
这是我的密码。我想在Java 不使用键盘,仅使用鼠标,即可进行多项选择,java,swing,jtable,Java,Swing,Jtable,这是我的密码。我想在JTable中选择多行,我使用以下行: table.getColumnModel().getSelectionModel().setSelectionMode( javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); 有了上面这一行,我可以使用键盘选择多行,但要求只使用鼠标进行选择 除此之外,Java还提供了只使用鼠标而不使用键盘的多选功能吗 如果您有此代码,只需按住ctrl键并单击“多个” 编辑:但
JTable
中选择多行,我使用以下行:
table.getColumnModel().getSelectionModel().setSelectionMode(
javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
有了上面这一行,我可以使用键盘选择多行,但要求只使用鼠标进行选择
除此之外,Java还提供了只使用鼠标而不使用键盘的多选功能吗 如果您有此代码,只需按住ctrl键并单击“多个” 编辑:但如果您不想使用键盘,我认为这是可能的,请尝试以下方法:
如果您有此代码,只需按ctrl键并单击多个即可 编辑:但如果您不想使用键盘,我认为这是可能的,请尝试以下方法:
我认为这是不可能的。我建议在表中添加一个额外的列,包含一个复选框,允许将行标记为选中。当然,您将无法使用表选择模型来知道选择了哪些行 我认为这是不可能的。我建议在表中添加一个额外的列,包含一个复选框,允许将行标记为选中。当然,您将无法使用表选择模型来知道选择了哪些行 是的,您可以通过覆盖changeSelection功能来选择多行,无需使用键盘,如下所示:
@Override
public void changeSelection(int rowIndex, int columnIndex, boolean toggle, boolean extend) {
latestClickedRowIndex = rowIndex;
ListSelectionModel selectionModel = getSelectionModel();
boolean selected = selectionModel.isSelectedIndex(rowIndex);
//throw new UnsupportedOperationException("Paila.");
if (selected) {
selectionModel.removeSelectionInterval(rowIndex, rowIndex);
getValueAt(rowIndex, columnIndex);
} else {
selectionModel.addSelectionInterval(rowIndex, rowIndex);
}
}
是的,您可以通过覆盖changeSelection功能选择多行,而无需使用键盘,如下所示:
@Override
public void changeSelection(int rowIndex, int columnIndex, boolean toggle, boolean extend) {
latestClickedRowIndex = rowIndex;
ListSelectionModel selectionModel = getSelectionModel();
boolean selected = selectionModel.isSelectedIndex(rowIndex);
//throw new UnsupportedOperationException("Paila.");
if (selected) {
selectionModel.removeSelectionInterval(rowIndex, rowIndex);
getValueAt(rowIndex, columnIndex);
} else {
selectionModel.addSelectionInterval(rowIndex, rowIndex);
}
}
我最终使用了以下代码:
JTable table = new JTable(){
@Override
public void changeSelection(int rowIndex, int columnIndex, boolean toggle, boolean extend) {
super.changeSelection(rowIndex, columnIndex, true, extend);
}
};
这样,CTRL(toogle)总是被按下(true)。我最后使用了以下代码:
JTable table = new JTable(){
@Override
public void changeSelection(int rowIndex, int columnIndex, boolean toggle, boolean extend) {
super.changeSelection(rowIndex, columnIndex, true, extend);
}
};
这样,CTRL(toogle)总是被按下(true).如何仅用鼠标按ctrl键?如何仅用鼠标按ctrl键?+1,如果他将复选框值绑定到表格模型中的选择模型,他可以使用选择模型。+1,如果他将复选框值绑定到表格模型中的选择模型,他可以使用选择模型。我读错了
提供了多个选项无法直接使用鼠标而不使用键盘进行选择
,因为ListSelectionModel仅为一维,这仅在API中针对JList实现,而JTreeI missread提供了仅使用鼠标而不使用键盘的多重选择
无法直接进行,因为ListSelectionModel只是一维的,所以它仅在API中为JList和JTree实现