Rumah > Java > javaTutorial > Berikut ialah beberapa pilihan tajuk yang berasaskan soalan dan sepadan dengan kandungan artikel: * Bagaimana untuk Menguatkuasakan Peraturan Pengesahan Tersuai untuk Sel JTable? * Bagaimanakah saya boleh Mencipta Editor Sel Tersuai untuk Menolak Inv

Berikut ialah beberapa pilihan tajuk yang berasaskan soalan dan sepadan dengan kandungan artikel: * Bagaimana untuk Menguatkuasakan Peraturan Pengesahan Tersuai untuk Sel JTable? * Bagaimanakah saya boleh Mencipta Editor Sel Tersuai untuk Menolak Inv

DDD
Lepaskan: 2024-10-27 09:44:30
asal
282 orang telah melayarinya

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

Cara Menolak Input Tidak Sah dalam Sel JTable

Dalam JTable, menetapkan jenis kelas lajur memastikan input yang tidak sah ditolak secara automatik dengan warna merah garis besar, seperti yang dilihat apabila memasukkan nilai berganda ke dalam lajur Integer. Walau bagaimanapun, tingkah laku ini tidak meliputi peraturan pengesahan tersuai, seperti menolak nilai negatif atau sifar.

Untuk meniru gelagat penolakan automatik bagi input bukan positif, kami boleh mencipta editor sel tersuai yang menyemak kesahihan semasa penyuntingan sel.

PositiveIntegerCellEditor

PositiveIntegerCellEditor berikut memanjangkan editor sel lalai untuk melaksanakan pengesahan yang diingini:

<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>
Salin selepas log masuk

Apabila mengedit sel dalam lajur yang ditentukan, PositiveIntegerCellEditor akan menolak input bukan positif, menggariskan sel dalam warna merah dan menghalang penyuntingan sel selesai.

Kod yang disediakan juga termasuk penambahan untuk penjajaran kanan dan pengendalian ralat semasa penyuntingan sel.

Tambahan

Artikel ini juga menyediakan pautan kepada sumber tambahan tentang pengesahan penyuntingan sel dalam JTable.

Atas ialah kandungan terperinci Berikut ialah beberapa pilihan tajuk yang berasaskan soalan dan sepadan dengan kandungan artikel: * Bagaimana untuk Menguatkuasakan Peraturan Pengesahan Tersuai untuk Sel JTable? * Bagaimanakah saya boleh Mencipta Editor Sel Tersuai untuk Menolak Inv. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan