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>
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!