Zum Inhalt springen

JTable


berndklb

Empfohlene Beiträge

hiho, ich hoffe ihr könnt mir helfen

ich hab schon alle möglichen seiten besucht und auch hier in der suche rumgeschaut, aber irgendwie komm ich nicht auf mein ziel.

Die Frage wurde schon leider hier öfters gestellt, konnte mir aber keine Lösung daraus bauen

er fügt den inhalt erst sauber ein, und wenn ich das model ändern will, wird das jtable nicht angezeigt.

		jTable = new JTable(dvdkeys, columns);

		System.out.println(jTable.getRowCount());

		jTable.setModel(new MyTableModel());

		System.out.println(jTable.getRowCount());

class MyTableModel extends DefaultTableModel {


    public boolean isCellEditable(int row, int column) {

        return false;

    }

}

ich möchte einfach erreichen das der Tabelleninhalt nicht mehr editierbar sein kann, damit ich über den MouseListener einen doppelklick abfangen kann. Weil solange die Möglichkeit besteht das die Zeile geändert werden kann, "verschluckt" er den Doppelklick.

besten dank schonmal

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sorry. Aber ich weiß nicht, wo Dein Problem liegt.

Aber mein Mann im Ohr sagt mir, das Dein Hilferuf in diesem Satz verborgen sei:

er fügt den inhalt erst sauber ein, und wenn ich das model ändern will, wird das jtable nicht angezeigt.

Allerdings kann ich aus dieser Aussage und dem Code nicht viel entnehmen, was mir helfen würde, Dir zu helfen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

ok sry, probiere ich es genauer zu erläutern.

ich möchte ein JTable mit dem Inhalt der Variable dvdkeys erzeugen (bei dvdkeys handelt es sich um den Typ String[][]), columns sind die Titelanzeigen.

Mein Problem besteht darin, dass das jTable ganz normal angezeigt wird wenn ich diesen Teil weglasse:

jTable.setModel(new MyTableModel());

Sobald ich diese Zeile hinzufüge, wird das jTable nicht mehr angezeigt. Und meine Frage lautet nu, wieso? :)

Gruß Bernd

P.S. hoffe es ist nu besser erklärt sonst probier ich es einfach nochmal

Link zu diesem Kommentar
Auf anderen Seiten teilen

Schon viel besser. Jetzt habe ich Dein Anliegen verstanden.

Ein kurzes Überfliegen des Table Tutorials (dort hast Du wohl auch Dein Model her), sagt mir, daß das Model nicht nur dazu da ist, die Methode isCellEditable() anzubieten. Du mußt, wenn Du ein Model verwenden möchtest, auch Deine Daten darin kapseln. D. h. dvdkeys und columns müssen in die Klasse MyTableModel.

Link zu diesem Kommentar
Auf anderen Seiten teilen

leider komm ich irgendwie noch nicht weiter, hättest du zufällig ein Beispiel für mich wie ich das mit dem Kapseln machen muss?

am besten wäre ein beispiel für die Zuweisung der Daten(sprich das hinzufügen der Daten) in die jTable, wenn ich die Daten in das TableModel ausgelagert habe.

Weil der Aufruf geht dann ja nicht mehr:

jTable = new JTable(dvdkeys, columns);
bis jetzt sieht es so aus: Aufruf der Klasse
jTable = new JTable(new MyTableModel(dvdkeys));
MyTableModel - Klasse
class MyTableModel extends DefaultTableModel {

	private String[] columns = new String[2];

	private String[][] dvdkeys;

    /**

     * aus der API: Returns true if the cell at rowIndex and columnIndex

     * is editable. Otherwise, setValueAt on the cell will not change the

     * value of that cell.

     */

	public MyTableModel(String[][] keys){

		columns[0] = "DVD-Key";

		columns[1] = "in Gebrauch";

		dvdkeys = keys;

	}

    public boolean isCellEditable(int row, int column) {

        return false;

    }

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...