JTable in CSV File schreiben...

izoards

Bekanntes Mitglied
Hi Liebe Java Community,

Ich habe eine JTable, mit zwei Spalten und dann x-Beliebig viele Zeilen.
Diese möchte ich nun in einem CSV File abspeichern, das geht auch, jedoch wird am Schluss der "Zeile" jeweils noch ein Komma angefügt.
Ich schreibe die Daten wie folgt:


Java:
public void writeToDisk(Object[][] aData, String aDatafile)
    {

        try
        {

            FileOutputStream fout =  new FileOutputStream(aDatafile, false);

            //BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fout));
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
            //Headers
            bw.append("Customer, E-Mail");
            // End of data row (Jable row) so append new line character in csv file
            bw.append('\n');

            for (int row = 0; row < aData.length; row++)
            {

                for (int column = 0; column < aData[row].length; column++)
                {

                    if(aData[row][column] == null)
                    {
                        bw.append("null");
                        // The comma separated value
                        bw.append(',');
                    }
                    else
                    {
             
                        bw.append(aData[row][column].toString());
                        bw.append(',');
                    }

                }//end column loop (inner loop)

                bw.append('\n');

            }//end row loop (outer loop)

            bw.close();

        }
        catch (Exception e)
        {

            e.getStackTrace();
        }

    }//end of readFileFromDisk


Ich verstehe nicht, wieso bei meinem Output am Ende jeder Zeile noch ein Komma steht:

Java:
Customer, E-Mail
Test AG,test@test.com,
Test 2 AG,test2@test.com,
Test 3 AG,test3@test.com,


Sieht hier jemand den Grund?

Und falls mir jemand gerade noch einen Tipp für das durchsuchen eines Object[][] aData geben kann, wäre ich sehr froh :)
Also suchen nach "customer" und dann den Wert der zweiten Spalte zurückerhalten...
Gibt es da einen einfachen "Befehl"?

Danke für die Hilfe
 
M

Mart

Gast
weil du es jedesmal hinuzfügst ... du musst die CSV datei schreiben dass das komma ein Delimiter ist ..aber als delimiter bietet sich ; mehr an
 

mihe7

Top Contributor
Ersetz die Schleife in den Zeilen 19 bis 35 mal durch
Java:
StringJoiner j = new StringJoiner(",");
for (Object elem : data[row]) {
    j.add(String.valueOf(elem));
}
bw.append(j.toString());
oder alternativ durch
Java:
String line = Stream.of(data[row]).map(String::valueOf).collect(Collectors.joining(","));
bw.appnd(line);
 

izoards

Bekanntes Mitglied
@mihe7 Danke Vielmals das klappt so 😊
Arbeite zum ersten mal mit Object [][]

Wäre es für meine Anwendung eigentlich besser, wenn ich mit einer HashMap arbeite?
Da mein Ziel ja im nachhinein ist, anhand des "Customers" die E-Mail Adresse auszulesen...

Wäre das auch möglich, die JTable mit einer HashMap abzufüllen?
 

mihe7

Top Contributor
Wäre es für meine Anwendung eigentlich besser, wenn ich mit einer HashMap arbeite?
Das kommt darauf an, ob Customer eindeutig ist. Wenn ja, dann bietet sich natürlich eine Map an.

Wäre das auch möglich, die JTable mit einer HashMap abzufüllen?
Klar, JTable stellt dar, was ein TableModel (das ist ein Interface) liefert. Du brauchst Dir nur ein geeignetes TableModel zu schreiben. Wenn Du von AbstractTableModel ableitest, ist das auch relativ einfach. Bei einer Map muss man etwas aufpassen, da es keine Garantien über die Ordnung gibt. Hier böte es sich also an, die Einträge der Map im TableModel in einer Liste zu verwalten.
 

izoards

Bekanntes Mitglied
Das kommt darauf an, ob Customer eindeutig ist. Wenn ja, dann bietet sich natürlich eine Map an.
Ja das sollte passen. Dann versuche ich das ganze mal mit einer HasMap.

ist die JTable eigentlich vorallem zum anzeigen der Daten gedacht, oder kann man da auch direkt Daten überschreiben btw. Hinzufügen/löschen?
 

mihe7

Top Contributor
Es ist ein Fehler, in der Darstellung der Daten auch die Datenverwaltung zu implementieren.
@izoards ein kleiner Hinweis, da das ggf. zu Verwirrung führen kann: mit "Datenverwaltung" hat @fhoffmann nicht das UI gemeint. Dort kannst Du natürlich auch in der JTable Daten editieren, die gibt den Spaß dann an das TableModel weiter und von dort aus direkt oder indirekt in das eigentliche Modell der Anwendung.
 

izoards

Bekanntes Mitglied
Ich "spiele" zur Zeit gerade mit JTable und dem defaultTableModel um die Daten in der Tabelle anzuzeigen und zu editieren.
Dafür habe ich ein listener eingerichtet, welcher der alte Wert, der neue Wert und die column und row angibt.

Nun kann ich ja meine HashMap mit diesen Werten aktualisieren... (Das klappt auch)

Ist meiner Meinung nach jedoch eher aufwändig... Da ich ja z.B. immer prüfen muss, zu welchem key, der geänderte Wert nun gehört und dann die Hashmap aktualisieren.

Also eine Bestehende Tabelle ändern mit einer Hashmap als Datenhaltung habe ich mal.

Ich frage mich jetzt einfach, ob das tatsächlich das "richtige" vorgehen ist?

Denn ich möchte auch ganze Zeilen löschen können und auch eine neue Zeile erstellen und mit den eingegebenen Werten (Key, Value für die HashMap speichern)
 

mihe7

Top Contributor
Normalerweise hat man ein Objektmodell, z. B. eine Klasse Customer, die neben der Kundennummer eben auch z. B. die E-Mail-Adresse speichert, wenn man es sich mal einfach macht. Dann hat man ein Repository, das die Kunden verwaltet, z. B. in einer DB oder im Speicher. Eine Map kann als Zugriffspfad auf Kunden-Objekte dienen, der zugleich die Eindeutigkeit garantiert. Das ist aber ein Implementierungsdetail. Das TableModel arbeitet mit dem Repository und bildet die Customer-Objekte tabellerisch ab. JTable stellt den Spaß dann dar.
 

izoards

Bekanntes Mitglied
Besten Dank für die Hilfe.
Aber wenn die ganze modifikation der Daten über die JTable geschehen soll, muss man das schon über listeners machen?
Also in meinem Fall die HashMap aktualisieren? Das geschieht dann direkt im listener Teil?
Oder gibt der Listener die Information retour und die aktualisierun geschieht ausserhalb?
Wenn ja wo ausserhalb? Im WindowController?

Danke für die nochmalige Hilfe
 

mihe7

Top Contributor
Aber wenn die ganze modifikation der Daten über die JTable geschehen soll, muss man das schon über listeners machen?
Es läuft immer über Listener, weil JTable solche beim TableModel registriert.

Hier mal ein Beispiel in komprimierter Form (Zeilenumbrüche weggelassen, alle Klassen in einer -> normal separat):
Java:
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.*;
import javax.swing.table.*;
import java.util.*;

public class Test {

    static class Customer {
        private String id;
        private String mail;

        public Customer(String id, String mail) {
            this.id = id;
            this.mail = mail;
        }

        public Customer(Customer c) {
            this.id = c.id;
            this.mail = c.mail;
        }

        public Customer workingCopy() {
            return new Customer(this);
        }

        public String getId() { return id; }
        public void setId(String id) { this.id = id; }
        public String getMail() { return mail; }
        public void setMail(String mail) { this.mail = mail; }
    }

    public class CustomersTableModel extends AbstractTableModel {
        private static final String[] COLUMNS = {"ID", "Mail"};
        private List<Customer> customers;

        public CustomersTableModel(List<Customer> customers) { this.customers = customers; }

        // TableModel-Implementierung
        // lesend
        @Override public int getRowCount() { return customers.size(); }
        @Override public int getColumnCount() { return COLUMNS.length; }
        @Override public String getColumnName(int col) { return COLUMNS[col]; }
        @Override
        public Object getValueAt(int row, int col) {
            Customer customer = customers.get(row);
            switch(col) {
                case 0: return customer.getId();
                case 1: return customer.getMail();
            }
            return null;
        }
        // ab hier das Thema ändern
        @Override public boolean isCellEditable(int row, int col) { return true; }
        @Override
        public void setValueAt(Object value, int row, int col) {
            Customer customer = customers.get(row);
            String text = value == null ? "" : value.toString();

            switch(col) {
                case 0: customer.setId(text); break;
                case 1: customer.setMail(text); break;
            }

            fireTableCellUpdated(row, col);
        }

        // von TableModel unabhängige Methoden,
        // so dass die JTable davon mitbekommt        
        public void add(Customer customer) {
            int row = getRowCount();
            customers.add(customer);
            fireTableRowsInserted(row, row);
        }
        public void remove(int row) {
            if (row < 0 || row >= getRowCount()) return;

            customers.remove(row);
            fireTableRowsDeleted(row, row);
        }    
    }


    public void run() {
        List<Customer> customers = new ArrayList<>();
        CustomersTableModel model = new CustomersTableModel(customers);
        JTable table = new JTable(model);

        JButton add = new JButton(" + ");
        add.addActionListener(e -> model.add(new Customer("", "")));
        JButton remove = new JButton(" - ");
        remove.addActionListener(e -> model.remove(table.getSelectedRow()));
        JPanel buttons = new JPanel(new FlowLayout(FlowLayout.RIGHT, 5, 5));
        buttons.add(add);
        buttons.add(remove);

        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.add(new JScrollPane(table));
        frame.add(buttons, BorderLayout.SOUTH);
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> new Test().run());
    }
}

Hier dient die List direkt als "Repository" und die Änderungen gehen unmittelbar in die Customer-Objekte bzw. die List ein.
 

izoards

Bekanntes Mitglied
Wow super, herzlichen Dank dafür...
Ich muss dein Beispiel mal in aller Ruhe mit meiner jetzigen Umsetzung anschauen.
Deines sieht viel aufgeräumter auf ;-)

Ich bin jetzt eigentlich soweit, dass ich mein JTable konstrukt per Knopfdruck von meinem Hauptprogramm öffnen möchte und dann das ganze in diesem neuen Fenster laufen lassen möchte... (Tabelle modifizieren, und speichern in csv.)

Jetzt habe ich gerade gemerkt, dass ich mit dem Scene Builder ja gar kein JTable einfügen kann(?)
Dort wird ja mit "TableView" gearbeitet...

Kann die ganze JTable irgendwie in eine TableView "eingebettet" werden?
Oder muss ich das ganze Modell nun überdenken. bzw. an TableView anpassen?
Oder würdest Du nun per "Code" dieses JFrame erstellen und darstellen? Also ohne fxml (Scenebuilder) unterstützung?
Würde dann auch kein controller benötigt werden? 🙈 Irgendwie habe ich das Gefühl, es prallen nun zwei "welten" zusammen bei meinem vorhaben...
 

mihe7

Top Contributor
Jetzt habe ich gerade gemerkt, dass ich mit dem Scene Builder ja gar kein JTable einfügen kann(?)
Dort wird ja mit "TableView" gearbeitet...
Äh, JTable ist Swing, TableView ist JavaFX. Ich würde das nicht mixen (auch, wenn es möglich sein soll).

Bei FX läuft das ein wenig anders. Dort hat man die Collections (wie z. B. List) mit dem Observable-Pattern ausgestattet (ObservableList etc.) und die Komponenten arbeiten dann mit diesen Collections. Die TableView wird dort auch explizit aufgebaut. Die Liste wird den Items hinzugefügt. Allerdings bin ich in FX nicht fit.
 

izoards

Bekanntes Mitglied
🙈 arghh.... Dann kann ich jetzt nochmals von vorne beginnen. Mein "Endprojekt" ist nämlich mit JavaFX...
Du könntest nicht gerade ein ähnliches Beispiel für JavaFX aus den Ärmeln schütteln? 😳
 

izoards

Bekanntes Mitglied
@mihe7 Besten Dank, habs jetzt auf JavaFX mit TableView umgeschrieben.

Was ich aber nicht hinkriege ist, der Key einer HashMap zu verändern, ohne dass sich die Reihenfolge in der Tabelle verändert.
Ist das gar nicht möglich bei einer HashMap?
Also ich möchte den alten Key eines bestehenden key/value - paar mit einem neuen Key ersetzen.

Habe es mal so versucht zu lösen. Wenn eine Zelle editiert wird, wird einfach mal der alte Wert zwischengespeichert:

[CODE lang="java" title="onEditStart"]public void onEditStart(CellEditEvent edittedCell) throws Exception {
oldCustomer = table.getSelectionModel().getSelectedItem();
System.out.println("oldValue: " + oldCustomer);

}[/CODE]


Bei onEditCommit, wird der neue Wert ausgelesen und eben jetzt sollte der Key überschrieben werden:

[CODE lang="java" title="onEditCommit"]public void onEditCommit(CellEditEvent edittedCell) throws Exception {
newCustomer = edittedCell.getNewValue().toString();
System.out.println("newValue: " + newCustomer);
if (!newCustomer.equals(oldCustomer)) {
String obj = map.remove(oldCustomer);
System.out.println("KEY: " + oldCustomer);
System.out.println("OBJ: " + obj);
map.put(newCustomer, obj);
}
writeHashMapToCsv(map);
}[/CODE]

Leider schiebt es dann das ganze Key/Value - Paar ans Ende der Tabelle, was gar nicht schön ist...

Kann ich das mit der HashMap irgendwie lösen? Oder ist das eine "eigenheit der Hashmap"?

Ich dachte einfach, es ist einfacher, anhand des Key's danach die Mail auszulesen, da ich in meinem weiteren Programm - Ablauf den Key - Wert weiss.

Oder sollte ich es trotzdem besser mit einem Objekt machen und dort irgendwie eine Suchfunktion einbauen?
 

fhoffmann

Top Contributor
Eine Map und insbesondere eine HashMap kennt keine Reihenfolge ihrer Elemente.
Wenn die Reihenfolge eine Rolle spielt, solltest du eine andere Klasse wählen; dann kann aber zum Beispiel das Einfügen oder das Suchen nach einem Element deutlich länger dauern.
 

izoards

Bekanntes Mitglied
Hmm, dachte ich mir schon fast..
Wäre es denn denkbar, dass ich eine Klasse für die Darstellung mache, die dann vom user editiebar ist und nach dem editieren jeweils in ein csv - file gespeichert wird.
das csv würde ich dann wieder in die hasmap laden und so im programmablauf auf die werte zugreifen?
 

izoards

Bekanntes Mitglied
Ich habe anhand diesem Beispiel:

GUIDemo/src/guidemo at master · JaretWright/GUIDemo · GitHub

Nun versucht meine Tabelle mit Customer Objekten zu füllen.
Leider wird jedoch in meiner Umsetzung nur die erste Kolonne gefüllt.

Hier meine Klasse "Customer"

Java:
import javafx.beans.property.SimpleStringProperty;

public class Customer {

    private SimpleStringProperty customer, eMail;



    public Customer(String customer, String eMail) {
        this.customer = new SimpleStringProperty(customer);
        this.eMail = new SimpleStringProperty(eMail);
    }

    public String getCustomer() {
        return customer.get();

    }

    public void setCustomer(String customer) {
        this.customer = new SimpleStringProperty(customer);
    }

    public String getEmail() {
        return eMail.get();
    }

    public void setEmail(String eMail) {
        this.eMail = new SimpleStringProperty(eMail);;
    }
}

Und hier die beiden Ausschnitte aus dem controller:

Java:
 public void init() {


        //set up the columns in the table
        column1.setCellValueFactory(new PropertyValueFactory<Customer, String>("customer"));
        column2.setCellValueFactory(new PropertyValueFactory<Customer, String>("eMail"));



        //load dummy data
        table.setItems(getCustomers());

        //Update the table to allow for the first and last name fields
        //to be editable
        table.setEditable(true);
        column1.setCellFactory(TextFieldTableCell.forTableColumn());
        column2.setCellFactory(TextFieldTableCell.forTableColumn());

        column1.setMinWidth(249);
        column2.setMinWidth(249);

        //This will allow the table to select multiple rows at once
        table.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
 }

Java:
private ObservableList<Customer> getCustomers() {
        ObservableList<Customer> customer = FXCollections.observableArrayList();
        customer.add(new Customer("Firma 1","info@firma1.ch"));
        customer.add(new Customer("Firma2", "info@firma2.ch"));
        customer.add(new Customer("Firma3","info@firma3.ch"));
        return customer;
        }

Die Variabeln wurden im Controller so definiert:

Java:
    @FXML private TableView<Customer> table;
    @FXML private TableColumn<Customer, String> column1;
    @FXML private TableColumn<Customer, String> column2;

Sieht jemand das Problem, was mache ich falsch?
 

izoards

Bekanntes Mitglied
Manchmal tut eine Pause gut... aus irgendeinem Grund funktioniert es nun...

Leider bin ich schon wieder am nächsten Problem und zwar möchte ich für die E-Mail eine input Validierung machen.

Wird das beim "onEditCommit" eingebaut, oder soll da ein listener eingebaut werden?
Habe im Netz irgendwie nichts brauchbares gefunden...
 

izoards

Bekanntes Mitglied
Hmm..

Hab mir jetzt was gebastelt... (vermutlich gibts einfachere wege...)

Die Methode writeEmail wird aufgerufen, wenn eine neue E-Mail adresse mit Enter (commit) geschrieben werden soll.
Falls sie nicht valid ist, wird der alte Wert eingefüllt.


Java:
public void writeEmail(CellEditEvent edittedCell) throws Exception {

      String oldValue = edittedCell.getOldValue().toString();

      Customer eMailSelected =  table.getSelectionModel().getSelectedItem();

      eMailSelected.setEMail(edittedCell.getNewValue().toString());

      String email = edittedCell.getNewValue().toString();

//      System.out.println(validateEMailInput(email));          //E-Mail Pattern Validation...

      if (validateEMailInput(email) == false) {

          eMailSelected.setEMail(oldValue);

          //System.out.println(eMailSelected.getEMail() + "    " + oldValue);

          table.refresh();



      } else {



          writeCSV();

          csvToMap();





      }

  }



  public boolean validateEMailInput(String email)  {

      Pattern pattern = Pattern.compile(EMAIL_VERIFICATION);

      Matcher matcher = pattern.matcher(email);

      boolean valid = matcher.matches();

     // boolean isValidEMail = email.matches(EMAIL_VERIFICATION);

      return valid;

  }
Nun möchte ich falls die E-Mail adresse nicht valid ist, der Rahmen rot färben.

Gibt es da ein CSS Befehl, wo ich die aktive Zelle bearbeiten kann?

Am liebsten wäre mir halt immernoch ein Listener auf die aktive Zelle, welcher den Rahmen rot färbt, solange die Eingabe nicht valid ist.

1622461435478.png

Mit JTable hatte ich es, jetzt mit JavaFX Tableview krieg ichs nicht hin :-(

Falls mir jemand helfen kann wäre das meeega...
 

izoards

Bekanntes Mitglied
Danke @mihe7
Schaue ich mir bei Gelegenheit an.
Habe es nun anders gelöst mit einem Label welches nach der Eingabe kurz grün anzeigt, ob der Eintrag erfolgreich war bzw. rot wenn es eben nicht valid ist.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Swing JTable mit Inhalt aus XML-File AWT, Swing, JavaFX & SWT 3
J Drag und drop aus einer JTable - bitte um Unterstützung AWT, Swing, JavaFX & SWT 2
S HPRO und UPRO gemeinsame JTABLE gemeinsamer RENDERER ? AWT, Swing, JavaFX & SWT 1
F Swing JTable - MultiHeader inkl. Eingabemöglichkeit AWT, Swing, JavaFX & SWT 1
S JTable - Feldinhalte anzeigen AWT, Swing, JavaFX & SWT 15
D Swing JTable Spaltenbreite AWT, Swing, JavaFX & SWT 1
W Gibt es einen "automatischen Listener" in Swing oder JTable oder der ATM-Klasse? AWT, Swing, JavaFX & SWT 14
G jTable - getSelectedRow() AWT, Swing, JavaFX & SWT 3
I JTable mit einem Button zu einer Detail Seite springen AWT, Swing, JavaFX & SWT 4
P JTable Listener für die Änderung einzelner Zellen oder Rows AWT, Swing, JavaFX & SWT 2
D Tastaturabfragen CTRL+t, CTRL+E bei eine JTable, bestehend aus JTextAteas AWT, Swing, JavaFX & SWT 4
P Checkboxes in JTable nicht editable AWT, Swing, JavaFX & SWT 9
F Best-Practise: JTable Text in Zelle zu groß AWT, Swing, JavaFX & SWT 2
Kohl Jedes Objekt einer JTable um ein Zeichen verkürzen AWT, Swing, JavaFX & SWT 7
I JTable, DefaultTableModel, zwei Zahlen multiplizieren. AWT, Swing, JavaFX & SWT 26
M JTABLE / wie oft wurde gewürfelt. AWT, Swing, JavaFX & SWT 1
F JTable vergrößern AWT, Swing, JavaFX & SWT 2
H JTable: Diverse NullPointer-Exceptions zur Laufzeit AWT, Swing, JavaFX & SWT 3
J Swing Werte des JTable werden nicht angezeigt AWT, Swing, JavaFX & SWT 9
T Swing JTable cellRenderer mit jpg Hintergrundfarbe lässt sich nicht ändern. AWT, Swing, JavaFX & SWT 1
HoT Einzelne Zelle in JTable Rahmen unten setzen AWT, Swing, JavaFX & SWT 24
B JTable Zellen zusammenfügen AWT, Swing, JavaFX & SWT 3
M Swing Cell Renderer für Zeilenumbruch in JTable AWT, Swing, JavaFX & SWT 0
H JTable im JSplitPane darstellen AWT, Swing, JavaFX & SWT 2
MadMax2506 Swing JTable lädt sehr lange AWT, Swing, JavaFX & SWT 1
D Zeilenumbruch in einer JTable AWT, Swing, JavaFX & SWT 9
R Swing JTable und Spaltenausrichtung AWT, Swing, JavaFX & SWT 8
G JTable füllen AWT, Swing, JavaFX & SWT 1
H JTable TableCellEditor-Problem AWT, Swing, JavaFX & SWT 0
W Swing JTable Zeilenumbruch innerhalb einer Zelle AWT, Swing, JavaFX & SWT 3
J Datensatz in jTable ausgeben AWT, Swing, JavaFX & SWT 3
M Swing Automatischer Editorstart in JTable-Zelle AWT, Swing, JavaFX & SWT 5
ralfb1105 Swing JTable aktualisieren AWT, Swing, JavaFX & SWT 5
adiko01 JTable: Nur markierte Zeilen aus der Tabelle in CSV exportiern AWT, Swing, JavaFX & SWT 9
M JTable.setDefaultRenderer(...) greift nicht AWT, Swing, JavaFX & SWT 0
J JTable: Eingabe in Tabellenzelle korrigieren AWT, Swing, JavaFX & SWT 4
T Problem mit JTable Sortierung AWT, Swing, JavaFX & SWT 2
D JTable nach INSERT aktualisieren /refreshen AWT, Swing, JavaFX & SWT 1
D MySQL Daten in JTable anzeigen AWT, Swing, JavaFX & SWT 2
H Swing Jtable extra spalte AWT, Swing, JavaFX & SWT 6
S Swing Rechteck über JTable zeichnen (per MouseListener) AWT, Swing, JavaFX & SWT 1
S Swing Mal wieder JTable Ansicht aktualisieren AWT, Swing, JavaFX & SWT 10
A JTable mit Daten füllen AWT, Swing, JavaFX & SWT 1
VfL_Freak Swing Einzelne Zeile in jTable selektieren klappt nicht AWT, Swing, JavaFX & SWT 7
N AWT jTable CellRenderer AWT, Swing, JavaFX & SWT 6
T Swing JTable valueChanged datensatz löschen AWT, Swing, JavaFX & SWT 1
0 Swing JTable aus anderer Klasse updaten AWT, Swing, JavaFX & SWT 5
S Jtable defaultRenderer wohin damit ? AWT, Swing, JavaFX & SWT 23
T Swing JTable / FocusListener AWT, Swing, JavaFX & SWT 0
it_is_all Warum wird die JTable im JDialog nicht angezeigt? AWT, Swing, JavaFX & SWT 1
L Swing JTable im Panel darstellen AWT, Swing, JavaFX & SWT 8
T Swing Double Click bei Buttons in JTable AWT, Swing, JavaFX & SWT 9
J addRow bei JTable AWT, Swing, JavaFX & SWT 6
M Jtable gibt -1 wert bei selectedRow und Column AWT, Swing, JavaFX & SWT 3
Meeresgott Swing JTable AWT, Swing, JavaFX & SWT 4
J JTable Selection Listener funktioniert nicht AWT, Swing, JavaFX & SWT 4
C Swing Daten in JTable wiedergeben per TableModel und MVC Pattern AWT, Swing, JavaFX & SWT 16
Z Swing Drag&Drop zwischen JTable und JTree AWT, Swing, JavaFX & SWT 4
Thallius JTable dynamisch Spaltenanzahl verändern AWT, Swing, JavaFX & SWT 2
Thallius JTable dynamisch laden? AWT, Swing, JavaFX & SWT 2
B Swing JTable sortieren AWT, Swing, JavaFX & SWT 2
T Swing JTable auslesen und befüllen AWT, Swing, JavaFX & SWT 8
B JTable wird nicht angezeigt AWT, Swing, JavaFX & SWT 1
J JTable und Suchlogik AWT, Swing, JavaFX & SWT 4
Viktim Swing JTable mit Tab verlassen AWT, Swing, JavaFX & SWT 1
F Swing Spaltenbreite einer Column eines JTable auslesen AWT, Swing, JavaFX & SWT 5
Viktim Swing JTable Mit Tab druch Zeilen Wechseln AWT, Swing, JavaFX & SWT 5
Thallius Warum refrehsed mein JTable nicht? AWT, Swing, JavaFX & SWT 5
Ghostman1711 Hinzufügen ausgewählter Dateinen des Filechoosers zu einem JTable AWT, Swing, JavaFX & SWT 9
S Swing JTable - Einzelne Rows einfärben AWT, Swing, JavaFX & SWT 11
M Wert einer Zelle aus JTable ziehen AWT, Swing, JavaFX & SWT 4
K JTable getValueAt() klappt nicht immer AWT, Swing, JavaFX & SWT 1
K JTable in extra Klasse, Zugriff in einer anderen klasse nicht möglich AWT, Swing, JavaFX & SWT 26
B Swing Tabelle(JTable) filtern swing GUI AWT, Swing, JavaFX & SWT 3
P JTable - bei Eingabe Selektion AWT, Swing, JavaFX & SWT 0
P Fokus auf Zelle in JTable AWT, Swing, JavaFX & SWT 1
S Swing Deselektion in JTable verhindern AWT, Swing, JavaFX & SWT 0
D Problem mit JTable AWT, Swing, JavaFX & SWT 1
N Swing Print JTable mit AbstractTableModel AWT, Swing, JavaFX & SWT 1
Ananaskirsche Swing jTable Reihen zuviel eingefügt AWT, Swing, JavaFX & SWT 12
P im JTable die Schriftfarbe ändern AWT, Swing, JavaFX & SWT 19
T Swing JTable wird nicht angezeigt AWT, Swing, JavaFX & SWT 4
S Dreiecke in bestimmte Zellen einer JTable AWT, Swing, JavaFX & SWT 9
LexeB4F Zelle in JTable gezielt einfärben AWT, Swing, JavaFX & SWT 4
LexeB4F JTable mehrere Zelle selektieren und inhalte Löschen.. Ideen gesucht AWT, Swing, JavaFX & SWT 1
D Swing JTable Renderer Grafikfehler AWT, Swing, JavaFX & SWT 0
K Swing JTable mit ImageIcon und Text in einer Zelle AWT, Swing, JavaFX & SWT 1
M Swing JTable GroupableHeader Background Color AWT, Swing, JavaFX & SWT 4
K Swing JTable updaten AWT, Swing, JavaFX & SWT 9
thet1983 Swing MySQL >> JTable AWT, Swing, JavaFX & SWT 5
J JTable bounds ändern durch resizing des Fensters AWT, Swing, JavaFX & SWT 9
F JTable Zellen-Hintergrund ändern AWT, Swing, JavaFX & SWT 7
O JTable linksbündig drucken (nicht der Zelleninhalt) AWT, Swing, JavaFX & SWT 2
Crazynet xls Datei in JTable AWT, Swing, JavaFX & SWT 3
O JTable ohne Rahmen printen AWT, Swing, JavaFX & SWT 3
L Swing JTable refresht die Column Namen nicht AWT, Swing, JavaFX & SWT 0
K JTable komplett durch andere ersetzen AWT, Swing, JavaFX & SWT 4
S JTable übernimmt Änderungen nicht AWT, Swing, JavaFX & SWT 2
Y JTable AWT, Swing, JavaFX & SWT 6
D Swing JCombobox in einem JTable vorbelegen AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben