Frage

Ich habe diese für eine ganze Weile gesucht und gefunden, kein klares Beispiel überall. Ich bin ein Java newbee mit NetBeans. Ich habe einen boolean Wert in der ersten Spalte einer JTable (genannt „Enabled“), und ich habe einige Code-Plugin, dass ich anrufen müssen, um zu sehen, ob es die Einstellungen hat es um die Lage versetzt werden muss, und wenn nicht, Anzeige ein Meldungsfeld und verhindert, dass überprüft aktiviert.

Alles, was ich wirklich Bedarf für eine Funktion, die aufgerufen werden, wenn das Kontrollkästchen aktiviert ist, und ich kann es von dort. Hat jemand ein Beispiel davon, wie dies zu tun?

Vielen Dank für Ihre Hilfe!

Harry

War es hilfreich?

Lösung

Sie wollen wahrscheinlich ein TableModelListener , wie diskutiert in Zuhören für Datenänderungen . Alternativ können Sie auch eine benutzerdefinierten Editor , wie diskutiert in Konzepte: Redakteure und Renderers und der folgende Abschnitt .

Andere Tipps

Alles, was ich wirklich brauchen, ist eine Funktion aufgerufen werden, wenn das Kontrollkästchen aktiviert ist

Wenn das Kontrollkästchen aktiviert wird, dann wird der Wert im Modell geändert werden, was wahrscheinlich nicht das, was Ihr wollen. Ich würde denken, dass Sie die Überprüfung der Checkbox in erster Linie verhindern wollen.

Der Weg, um eine Zelle zu verhindern, editierbar zu sein, ist die isCellEditable (...) -Methode von JTable außer Kraft zu setzen. Durch diese Methode überschreiben können Sie dynamisch bestimmen, ob die Zelle bearbeitet werden soll oder nicht.

JTable table = new JTable( ... )
{
    public boolean isCellEditable(int row, int column)
    {
        int modelColumn = convertColumnIndexToModel( column );

        if (modelColumn == yourBooleanColumn)
            return isTheBooleanForThisRowEditable(row);
        else
            return super.isCellEditable(row, column);
    }
};

Und ein schicker Ansatz wäre, einen benutzerdefinierten Renderer zu schaffen, so dass das Kontrollkästchen aussieht „disabled“, noch bevor der Benutzer versucht, auf der Zelle zu klicken. Siehe den Link zur Verfügung gestellt von trashgod auf Renderer.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top