【问题标题】:How to prevent a different JTable row from being selected?如何防止选择不同的 JTable 行?
【发布时间】:2018-07-07 10:12:21
【问题描述】:

我有一个看起来像这样的JFrame 窗口:

基本上,无论选择JTable 中的哪一行,右侧窗格中都会显示有关详细信息(即JRootPane)。

根窗格包含一些用户可以执行的操作,例如从它所拥有的有关所选项目的数据中生成和保存图像。

执行此操作时,Item Details 上方将显示一个玻璃窗格,其中包含加载微调器和模糊背景。

但目前用户仍然可以在发生这种情况时选择不同的行。

有没有办法(除了在表格上显示一个玻璃窗格)让我保持选中的行,同时防止另一行被选中?也许是一些事件监听器?

我尝试使用mouseClicked 方法创建一个自定义MouseAdapter,但没有成功。并且将setRowSelectionAllowed 设置为FALSE 将取消选择当前选定的行。

【问题讨论】:

  • 是否只选择表格中的一行?
  • 不,我想知道如何阻止另一行被选中(即:取消鼠标单击事件或其他事情)。我已经知道如何只选择一行。
  • 查看JTable中的SELECTION LISTENER
  • 看起来不像 selection listener 可以让我取消活动

标签: java swing jtable


【解决方案1】:

一开始,您放弃的解决方案(用 GlassPane 覆盖 JTable)似乎是一个更好的解决方案。

也就是说,您可以覆盖 Component#processEvent 并且有条件地不调用 super 以忽略您桌上的所有事件。

【讨论】:

  • 嗯,好吧,看起来玻璃板是最好的选择
  • @xorinzor 查看Disabled Glass Pane。它会拦截鼠标和键盘事件。
猜你喜欢
  • 2020-08-18
  • 2013-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-07
  • 1970-01-01
  • 2011-02-15
相关资源
最近更新 更多