Windows与Mac之间密钥检测的Java差异
发布时间:2020-12-13 23:14:22 所属栏目:Windows 来源:网络整理
导读:我有一个带有键监听器的JList,使用户可以轻松地从列表中删除一个项目.在 Windows上,它工作正常.您点击删除键,该项目被删除.在mac上,程序不响应删除键.我正在使用KeyEvent.VK_DELETE,我认为这是一种检测特殊键的平台中立方式.有没有不同的方法我应该在Mac上检
我有一个带有键监听器的JList,使用户可以轻松地从列表中删除一个项目.在
Windows上,它工作正常.您点击删除键,该项目被删除.在mac上,程序不响应删除键.我正在使用KeyEvent.VK_DELETE,我认为这是一种检测特殊键的平台中立方式.有没有不同的方法我应该在Mac上检测按键?
studentJList.setModel(studentListModel); // a custom model I wrote studentJList.addKeyListener(new KeyListener() { @Override public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_DELETE) { studentListModel.remove(studentJList.getSelectedIndex()); studentJList.revalidate(); } } @Override public void keyReleased(KeyEvent e) { } @Override public void keyTyped(KeyEvent e) { } });
例如
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ListDemo extends JPanel { private static final long serialVersionUID = 1L; private JFrame frame = new JFrame("ListDemo"); private JList list; private DefaultListModel listModel; public ListDemo() { super(new BorderLayout()); listModel = new DefaultListModel(); listModel.addElement("Jane Doe"); listModel.addElement("John Smith"); listModel.addElement("Kathy Green"); list = new JList(listModel); list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); list.setSelectedIndex(0); list.setVisibleRowCount(5); JScrollPane listScrollPane = new JScrollPane(list); frame.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE); frame.add(listScrollPane,BorderLayout.CENTER); frame.pack(); frame.setVisible(true); setKeyBindings(); } private void setKeyBindings() { list.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT) .put(KeyStroke.getKeyStroke("DELETE"),"clickDelete"); list.getActionMap().put("clickDelete",new AbstractAction() { private static final long serialVersionUID = 1L; @Override public void actionPerformed(ActionEvent e) { int index = list.getSelectedIndex(); if (index > -1) { listModel.remove(index); } } }); } public static void main(String[] args) { javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { ListDemo listDemo = new ListDemo(); } }); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Windows – MS.Win32.Penimc.UnsafeNativeMethods Visual S
- Windows – 如何从CMD.exe切换到Powershell?
- 如何监控Windows上的CPU缓存?
- Windows 2000及更高版本上的DOS选择批处理命令(默认和超时)
- DLL – 如何在g中静态包含库?
- 在同一台Windows计算机上安装多个Jenkins实例会导致问题
- iis – 从部署中排除文件夹并停止其他文件删除
- windows-phone-7 – WP7:获取电话名称
- windows – 确保UDP中的数据包顺序
- 在Windows中使用子程序Popen.send_signal(CTRL_C_EVENT)时如