JTable セルで無効な入力を拒否する方法
JTable で列クラス タイプを設定すると、無効な入力が赤色で自動的に拒否されます。整数列に double 値を入力したときに表示されるアウトライン。ただし、この動作は、負の値やゼロの値の拒否などのカスタム検証ルールには拡張されません。
非正の入力に対する自動拒否動作を再現するには、有効性をチェックするカスタム セル エディタを作成できます。セル編集中。
PositiveIntegerCellEditor
次の PositiveIntegerCellEditor は、必要な検証を実行するためにデフォルトのセル エディタを拡張します:
<code class="java">private static class PositiveIntegerCellEditor extends DefaultCellEditor { private static final Border red = new LineBorder(Color.red); private static final Border black = new LineBorder(Color.black); private JTextField textField; public PositiveIntegerCellEditor(JTextField textField) { super(textField); this.textField = textField; this.textField.setHorizontalAlignment(JTextField.RIGHT); } @Override public boolean stopCellEditing() { try { int v = Integer.valueOf(textField.getText()); if (v < 0) { throw new NumberFormatException(); } } catch (NumberFormatException e) { textField.setBorder(red); return false; } return super.stopCellEditing(); } @Override public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { textField.setBorder(black); return super.getTableCellEditorComponent( table, value, isSelected, row, column); } }</code>
使用法
指定された列のセルを編集する場合、PositiveIntegerCellEditor は非正の入力を拒否し、セルの輪郭を赤で表示し、セルの編集が完了しないようにします。
提供されたコードには拡張機能も含まれています。セル編集時の右揃えとエラー処理について説明します。
付録
この記事には、JTable でのセル編集の検証に関する追加リソースへのリンクも記載されています。
以上が以下に、質問ベースで記事の内容と一致するいくつかのタイトル オプションを示します。 * JTable セルにカスタム検証ルールを適用するにはどうすればよいですか? * Inv を拒否するカスタム セル エディターを作成するにはどうすればよいですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。