Wie mark JTable cell Eingabe als ungültig?

Wenn ich eine JTable und eine Spalte angeben, die classtype auf es ist das Modell wie folgt:

   DefaultTableModel model = new DefaultTableModel(columnNames, 100) {
       @Override
        public Class<?> getColumnClass(int columnIndex) {
            return Integer.class;
        }};

Dann, wenn ein Benutzer versucht, geben Sie eine double Wert in der Tabelle, Schwingen automatisch die Eingabe ablehnt, und setzt die Zelle Umriss in rot.

Möchte ich den gleichen Effekt auftreten, wenn jemand in einen 'negativen oder 0' Eingang in die Zelle. Ich habe diese:

    @Override
    public void setValueAt(Object val, int rowIndex, int columnIndex) {
       if (val instanceof Number && ((Number) val).doubleValue() > 0) {
              super.setValueAt(val, rowIndex, columnIndex);
            } 
       }
   }

Dies verhindert, dass die Zelle, von der Annahme alle nicht-positiven Werte, aber es doens T legen Sie die Farbe rot und lassen Sie die Zelle, die als bearbeitbar.

Habe ich versucht zu erforschen, wie JTable tut die Ablehnung standardmäßig, aber ich kann nicht scheinen, um es zu finden.

Wie kann ich es ablehnen, das nicht-positive input auf die gleiche Weise, die es ablehnt, die nicht-Integer-Eingang?

Dank

InformationsquelleAutor Cuga | 2011-09-23
Schreibe einen Kommentar