JTable 單元格中的輸入驗證無效
問題:
問題:考慮一個🎜>其中一列使用getColumnClass() 方法將類別類型指定為Integer。 Swing 會自動標記並拒絕無效輸入(例如雙精度值)。但是,需要對非正整數輸入(負數或零)進行自訂驗證,模仿無效整數輸入的預設行為。
答案:<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>
以上是如何驗證 JTable 儲存格中的非正整數輸入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!