• category: swing folder: TabbedPaneInputVerifier title: JTabbedPaneのタブ移動時にInputVerifierによる検証を実行する tags: [JTabbedPane, InputVerifier, Focus] author: aterai pubdate: 2016-12-26T16:12:59+09:00 description: JTabbedPaneのタブ移動時にタブコンポーネントに設定されたInputVerifierを実行し、その検証で入力が無効な場合はタブの切替をキャンセルします。 image: https://drive.google.com/uc?export=view&id=1E4H4aD4uZ-DBc_H6-KLuEEsZoyJqNxdHuQ

概要

JTabbedPaneのタブ移動時にタブコンポーネントに設定されたInputVerifierを実行し、その検証で入力が無効な場合はタブの切替をキャンセルします。

サンプルコード

tabbedPane.setModel(new DefaultSingleSelectionModel() {
  @Override public void setSelectedIndex(int index) {
    InputVerifier verifier = p.getInputVerifier();
    if (Objects.nonNull(verifier) && !verifier.shouldYieldFocus(p)) {
      UIManager.getLookAndFeel().provideErrorFeedback(p);
      JOptionPane.showMessageDialog(p, "InputVerifier#verify(...): false");
      return;
    }
    super.setSelectedIndex(index);
  }
});
View in GitHub: Java, Kotlin

解説

参考リンク

コメント