JTable セルに負の値またはゼロの値が含まれないようにするにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-10-28 13:17:02
オリジナル
472 人が閲覧しました

How Can I Prevent Negative or Zero Values in JTable Cells?

JTable セルへの無効な入力の防止

JTable コンポーネントは、整数などの特定のデータ型に対する組み込みの検証を提供します。ただし、デフォルトでは負の値またはゼロの値は処理されません。カスタム検証ルールを実装するには、カスタム セル エディター クラスを作成できます。

解決策:

入力を検証する TableModel を使用する代わりに、DefaultCellEditor のサブクラスを次のように作成します。

<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;
        textField.setHorizontalAlignment(JTextField.RIGHT); // Align right for positive numbers
    }

    @Override
    public boolean stopCellEditing() {
        try {
            int value = Integer.valueOf(textField.getText());
            if (value < 0) {
                throw new NumberFormatException();
            }
        } catch (NumberFormatException e) {
            textField.setBorder(red); // Highlight invalid input
            return false;
        }
        textField.setBorder(black); // Reset border for valid input
        return super.stopCellEditing();
    }
}</code>
ログイン後にコピー

このカスタム エディターはユーザー入力をチェックし、無効な値 (負またはゼロ) の赤い境界線を表示します。

実装:

カスタム エディターをインスタンス化し、目的の列に設定します。

<code class="java">JTextField integerField = new JTextField();
PositiveIntegerCellEditor integerEditor = new PositiveIntegerCellEditor(integerField);
table.getColumnModel().getColumn(columnIndex).setCellEditor(integerEditor);</code>
ログイン後にコピー

このソリューションは、整数入力に対するデフォルトのエディターの動作を模倣し、負の値またはゼロの値を拒否し、無効なセルを強調表示します。

以上がJTable セルに負の値またはゼロの値が含まれないようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!