Mac OS X 上的 JTable 多项选择
JTable multiple selection on Mac OS X
我有一个 Swing 应用程序,我们遇到了一些 Mac 用户和 JTable
组件的问题。
表格设置了 select离子模式:
setSelectionMode(javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
在 Windows 上使用此 selected 您可以:
- select一行
- select 按住鼠标并拖动连续行
- select 连续行,方法是单击第一行到 select,按住 Shift 键并单击最后一行到 select
- Select 多组连续行,方法是单击一行并拖动,然后按住 ctrl 并从不同的行再次执行此操作
- 您可以按住 Ctrl 并单独 select 行不连续
在 Mac OS 你只能做 1 和 2。
我不关心 3 和 4,但我真的需要它们能够 select 不连续的随机行。
这是 #5 中描述的 selection 行为的图片,它不适用于 Mac:
我使用标准 JTable 简单演示在 windows 上生成了这个。你不能在 Mac 上这样做。你可以 linux。这是该演示的 link:
docs.oracle.com/javase/tutorial/uiswing/components/table.html
这是已知问题还是已知解决方案?
Windows Ctrl 键在功能上更接近 Mac 的 Command 键,而不是 Control 键,尽管 Java 识别 Win 的 Ctrl 键和 Mac' s 控制键具有相同的 KeyEvent#getKeyCode() 值 17。
选择 non-contiguous 行对我有用,方法是按住 Command 键,而不是 Control。在带有 M1 芯片 运行 MacOS Monterey 12.0.1 的 MacBook Air 上测试,使用 Azul Zulu 的 OpenJDK 版本 17.0.2 构建。
我有一个 Swing 应用程序,我们遇到了一些 Mac 用户和 JTable
组件的问题。
表格设置了 select离子模式:
setSelectionMode(javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
在 Windows 上使用此 selected 您可以:
- select一行
- select 按住鼠标并拖动连续行
- select 连续行,方法是单击第一行到 select,按住 Shift 键并单击最后一行到 select
- Select 多组连续行,方法是单击一行并拖动,然后按住 ctrl 并从不同的行再次执行此操作
- 您可以按住 Ctrl 并单独 select 行不连续
在 Mac OS 你只能做 1 和 2。 我不关心 3 和 4,但我真的需要它们能够 select 不连续的随机行。
这是 #5 中描述的 selection 行为的图片,它不适用于 Mac:
我使用标准 JTable 简单演示在 windows 上生成了这个。你不能在 Mac 上这样做。你可以 linux。这是该演示的 link: docs.oracle.com/javase/tutorial/uiswing/components/table.html
这是已知问题还是已知解决方案?
Windows Ctrl 键在功能上更接近 Mac 的 Command 键,而不是 Control 键,尽管 Java 识别 Win 的 Ctrl 键和 Mac' s 控制键具有相同的 KeyEvent#getKeyCode() 值 17。
选择 non-contiguous 行对我有用,方法是按住 Command 键,而不是 Control。在带有 M1 芯片 运行 MacOS Monterey 12.0.1 的 MacBook Air 上测试,使用 Azul Zulu 的 OpenJDK 版本 17.0.2 构建。