jlist复选框setmnemonics java swing

jlist复选框setmnemonics java swing,java,swing,checkbox,jlist,mnemonics,Java,Swing,Checkbox,Jlist,Mnemonics,我在想,到目前为止,我正在搜索jlist教程,几乎所有教程都有事件鼠标点击,因此我在想,是否有可能为列表中的每个项目设置助记符我正在编写此代码 public class CheckList { public static void main(String args[]) { JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //

我在想,到目前为止,我正在搜索jlist教程,几乎所有教程都有事件鼠标点击,因此我在想,是否有可能为列表中的每个项目设置助记符我正在编写此代码

public class CheckList
{  
   public static void main(String args[])
   {
      JFrame frame = new JFrame();
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

      // Create a list containing CheckListItem's
      
      JList list = new JList(new CheckListItem[] {
            new CheckListItem("apple"), 
            new CheckListItem("orange"), 
            new CheckListItem("mango"), 
            new CheckListItem("paw paw"), 
            new CheckListItem("banana")});
      
      // Use a CheckListRenderer (see below) 
      // to renderer list cells
      
      list.setCellRenderer(new CheckListRenderer());
      list.setSelectionMode(
         ListSelectionModel.SINGLE_SELECTION);
      
      // Add a mouse listener to handle changing selection
      
      list.addMouseListener(new MouseAdapter()
      {
         public void mouseClicked(MouseEvent event)
         {
            JList list = (JList) event.getSource();
            
            // Get index of item clicked
            
            int index = list.locationToIndex(event.getPoint());
            CheckListItem item = (CheckListItem)
               list.getModel().getElementAt(index);
            
            // Toggle selected state
            
            item.setSelected(! item.isSelected());
            
            // Repaint cell
            
            list.repaint(list.getCellBounds(index, index));
         }
      });   

      frame.getContentPane().add(new JScrollPane(list));
      frame.pack();
       frame.setVisible(true);
   } 
}
由此


任何想法或建议都将不胜感激

简短回答,不。我也担心你
MouseListener
。。这会有点违反直觉…@MadProgrammer有没有办法创建一个复选框,它在组中,但可以选择或检查多个项目?我不知道如何使这一个工作,这取决于你的模型…@MadProgrammer你能检查一下吗。并进一步解释您的想法,如果您可以提供一个更好的代码片段(如果窗口中有焦点所有者),那么您可以查看(并覆盖)JList#getNextMatch(在API中实现的JList中的标准搜索),然后您可以创建一个助记符(请注意,它应该仅限于一个字符)在JList视图中形成字符序列(例如,如果您正确重写此方法,则您可以选择所有项目,开始或包含特定字符,例如助记符“a”应为选择“apple”或搜索所有项目时包含“a”,速度越快,越安全)