ホームページ  >  記事  >  Java  >  以下に、質問ベースで記事の内容と一致するいくつかのタイトル オプションを示します。 * JTable セルにカスタム検証ルールを適用するにはどうすればよいですか? * Inv を拒否するカスタム セル エディターを作成するにはどうすればよいですか

以下に、質問ベースで記事の内容と一致するいくつかのタイトル オプションを示します。 * JTable セルにカスタム検証ルールを適用するにはどうすればよいですか? * Inv を拒否するカスタム セル エディターを作成するにはどうすればよいですか

DDD
DDDオリジナル
2024-10-27 09:44:30185ブラウズ

Here are a few title options that are question-based and match the article's content:

* How to Enforce Custom Validation Rules for JTable Cells?
* How can I Create a Custom Cell Editor to Reject Invalid Input in JTable?
* Beyond Type Checking: Implement

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。