jlist复选框setmnemonics java swing
我在想,到目前为止,我正在搜索jlist教程,几乎所有教程都有事件鼠标点击,因此我在想,是否有可能为列表中的每个项目设置助记符我正在编写此代码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); //
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”,速度越快,越安全)