如何在 JTable 中啟用非連續單元格選擇
在標準 JTable 實作中,使用者只能選擇連續單元格群組。但是,有一些方法可以自訂此行為以允許單一和非連續的單元格選擇。
方法1:使用CTRL 修飾符
如果JTable 的選擇模式設定為ListSelectionModel.SINGLE_SELECTION,按住CTRL鍵的同時點選不連續的儲存格將選擇它們
方法2:重寫processMouseEvent方法
為了更好地控制選擇行為,您可以重寫 JTable 子類別的 processMouseEvent 方法。在重寫的方法中,您可以修改修飾符以使 JTable 在處理滑鼠事件時確信 CTRL 鍵已按下。
以下是範例程式碼片段:
public class Ctrl_Down_JTable extends JTable { private static final long serialVersionUID = 1L; @Override protected void processMouseEvent(MouseEvent e) { int modifiers = e.getModifiers() | InputEvent.CTRL_MASK; int modifiersEx = e.getModifiersEx() | InputEvent.CTRL_MASK; MouseEvent myME = new MouseEvent((Component) e.getSource(), e.getID(), e.getWhen(), modifiers, e.getX(), e.getY(), e.getXOnScreen(), e.getYOnScreen(), e.getClickCount(), e.isPopupTrigger(), e.getButton()); super.processMouseEvent(myME); } }
方法3:使用自訂ListSelectionModel
另一個選項是建立一個自訂ListSelectionModel支援非連續小區選擇。這涉及擴展 DefaultListSelectionModel 類別並重寫特定方法來實現所需的功能。
注意:
以上是如何在 JTable 中啟用非連續儲存格選擇?的詳細內容。更多資訊請關注PHP中文網其他相關文章!