[英]How to get items from JList only when items are selected
在我的程序(一个JApplet
,我有一个用DefaultListModel
填充的JList
。 用户可以选择最多选择一定数量的项目,并通过按下JButton
表明他/她的选择已经完成。 然后,我使用在ActionPerformed
事件处理程序中为JButton
选择的项目。
除非在按下JButton
之前未选择任何项目,否则这将非常JButton
-如果未选择任何内容,则我的ActionPerformed
的其余指令也不会操作。 我已经尝试将myJList.isSelectionEmpty()
为负if条件,并且还将我从myJList.getSelectedIndices()
获得的数组长度与0进行了比较,但均myJList.getSelectedIndices()
。
但是,如果最初单击某项然后将其取消选择(我有一个明确的选择按钮),则该控件将起作用,并且在随后的每次程序中都起作用,因此似乎只是第一次需要触发它。
谁能指出我正确的方向?
如果我对您的理解很好,那么这可能是一种解决方案。
最初,禁用JButton。 然后,为您的JList提供ListSelectionListener; 在此事件处理程序中,检查是否已做出选择(至少选择了一项)。 如果是,请启用JButton; 否则禁用它。 这样,如果没有选择任何项(我想),则将阻止执行JButton的ActionEvent处理程序。 假设您的JList是lstChoices,而您的JButton是btnSubmit。 这应该做上面提到的:
lstChoices.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e)
{
if(lstChoices.getSelectedValuesList().size() > 0)
{
btnSubmit.setEnabled(true);
}
else
{
btnSubmit.setEnabled(false);
}
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.