In JTable Zeilen n. selben Dateninhalt filtern & ausgebe

Status
Nicht offen für weitere Antworten.
L

Louis2

Gast
Hallo,

ich hole aus einer DB Kundendaten (CustomerNo, CustomerName, Email, AuftragNr....) und sie werden in einer JTable dargestellt z.B.
Code:
CustomerNo | CustomerName | Email | AuftragNr
1600 | Test | [email]test@test.de[/email] | 10
1600 | Test | [email]test@test.de[/email] | 11 
1600 | Test | [email]test@test.de[/email] | 12
1650 | Test1 | [email]test1@test1.de[/email] | 20
1650 | Test1 | [email]test1@test1.de[/email] | 21

Nun kann ich in der JTable Spalten selektieren. Gehe dann Zeile pro Zeile die selektierten Spalten durch, pack Zeile pro Zeile die Werte in eine Email und verschicke sie. Ich verschicke mit dieser Methode 1 Email pro Zeile.


Nun möchte ich aber 1 Email pro Kunden versendet wo alle Zeilen des Kundens drin sind. D.h im falle von oben:
Mail1: an Kunde 1600
1600 | Test | test@test.de | 10
1600 | Test | test@test.de | 11
1600 | Test | test@test.de | 12

Mail2: an Kunde 1650
1650 | Test1 | test1@test1.de | 20
1650 | Test1 | test1@test1.de | 21


So ich habe es schon probiert indem ich die aktuelle CustomerNo mit der nächsten vergleichen aber irgendwie funzt es nicht richtig... (ausserdem habe ich gehört, dass es leichter wäre wenn ich es in Oracle mit Packages und Stored Procedures..., wie man sowas macht k.A. ist da was dran, dass es leichter ist?)

Mein code: (nur Code wo die Methode zum versenden angegeben wird, denn da muss ja die Überprüfung passieren)
Es werden immer noch einzelne mails verschickt, ausserdem klappt die Überprüfung nicht richtig (k+1 mit k zu vergleichen geht nicht 100%, im Beispiel von oben würden dann nur die ersten 2 1600 Firmen genommen...) und ist wohl am falschen Ort (sollte nachdem alles in eine mail gepackt wird ab der nächsten Zeile anfangen und nicht in der for-Schleife ab dem nächsten k). Hat jemand eine Idee?

[EDIT] Code wurde geändert!
Code:
public void writeMail_Log() // Write in Email body and log
{
    try
    {
        cancelButton.setEnabled(true);
        sendButton.setEnabled(false);
            
        t = new Thread(new Runnable() 
        { 
            public void run() 
            {                   
                props=new Properties();
                if (main.INIHost != null)
                {
                    props.put("mail.smtp.host", main.INIHost);
                    props.put("mail.smtp.auth", "true");
                }
                mailConnection=Session.getDefaultInstance(props,null);
                try
                {
                    tr = (SMTPTransport)mailConnection.getTransport("smtp");
                    tr.connect(main.INIHost, main.hostUser, main.hostPassword);
                        
                    dateiStream = new FileWriter(logname); 
                    ausgabe = new PrintWriter(dateiStream);
                                        
                    for (k=start; k<leng && state == true; k++)
                    {
                        Object customerNo = table.getModel().getValueAt(k,0);
                        try
                        {
                            dateiStream1 = new FileWriter(filename); 
                            csvdata = new PrintWriter(dateiStream1);
                            htmltable="<html><body><table border='1' cellpadding='0' cellspacing='0'>";
                            htmltable=htmltable + "<tr>";
                            for (int y=0; y<=selectedColumns.length-1;y++)
                            {
                                htmltable=htmltable + "<td width='175px'><div align='left'>[b]" + table.getColumnName(selectedColumns[y]) + "[/b]</div></td>";
                                csvdata.print(table.getColumnName(selectedColumns[y]) + ";");
                            }
                            htmltable=htmltable + "</tr>";
                            csvdata.println(System.getProperty("line.separator"));                            
                            for (;k < leng; k++) 
                            { 
                                System.out.println("outer for k = "+k); 
                                System.out.println("inner for k = "+k); 
                                htmltable=htmltable + "<tr>"; 
                                for (int y=0; y<=selectedColumns.length-1;y++)
                                {
                                    main.appendSubject(ans);
                                    yourValue = table.getModel().getValueAt(k, selectedColumns[y]);
                                
                                    if (yourValue == null)
                                        htmltable=htmltable+ "<td width='175px'><div align='left'>" + "" + "</div></td>";
                                    else 
                                        htmltable=htmltable+ "<td width='175px'><div align='left'>" + yourValue + "</div></td>";
                                    main.appendText(table.getColumnName(selectedColumns[y]) + ": " + yourValue + System.getProperty("line.separator"));
                            
                                    Object CSVValue = table.getModel().getValueAt(k, selectedColumns[y]); 
                                    if (CSVValue == null)
                                        csvdata.print("" + ";");
                                    else 
                                        csvdata.print(CSVValue + ";");
                                }
                                htmltable=htmltable + "</tr>";
                                csvdata.println();
                                if (k+1 < leng && !customerNo.equals(table.getModel().getValueAt(k+1,0))) 
                                    break;   
                            }
                            csvdata.close();
                            
                            htmltable=htmltable + "</table></body></html>";
                                               
                            main.appendToEmail(getWert(k));
                                                                               
                            sendMail_Log();
                        }
                        catch (Exception e6)
                        {
                            JOptionPane.showMessageDialog(null, "Error: " + "\n" + e6.getMessage(), "Message", JOptionPane.ERROR_MESSAGE);
                        }
                        main.setVisible(false);
                    }
                    ausgabe.close();
                }
                catch (Exception e10)
                {
                    JOptionPane.showMessageDialog(null, "Error: " + e10.getMessage() + "\n" + "Could not connect to Email Server, please check Host-, User- and Password name", 
"Message", JOptionPane.ERROR_MESSAGE);    
                    state=false;
                    sendButton.setEnabled(true);
                }
                try
                {
                    tr.close();
                }
                catch (Exception e11)
                {
                    JOptionPane.showMessageDialog(null, "Error: " + "\n" + 
e11.getMessage(), "Message", JOptionPane.ERROR_MESSAGE);    
                }
                if (k == leng)
                {
                    if (error > 0)
                        JOptionPane.showMessageDialog(null, error + 
" error(s) in test mode, a log file has been produced (please check it).", "Message", JOptionPane.ERROR_MESSAGE);   
                    else
                        JOptionPane.showMessageDialog(null, "The process has been completed without errors, Emails have been sended and a log file produced."); 
                    cancelButton.setEnabled(false);
                    state=false;
                }
            }
        });
        t.start();
     }
     catch (Exception e7)
     {
         JOptionPane.showMessageDialog(null, "Error: Could not create file", 
"Message", JOptionPane.ERROR_MESSAGE); 
     }
}

[EDIT]Aktueller Code!!!
 

Mag1c

Top Contributor
Moin,

du müsstest noch eine zweite Schleife machen, die alle Zeilen eines Kunden aufsammelt (Zeile 46). In etwa so:

Code:
Object customerNo = table.getModel().getValueAt(k,0);
while (k+1 < leng && customerNo.equals(table.getModel().getValueAt(k+1,0)) {
    k++;
    ...
}

Gruß
Mag1c
 
L

Louis2

Gast
Hallo Mag1c,

das klappt ja schonmal ganz gut, aber die letzte Zeile von jedem Kunden nimmt er nicht, weil da der Vergleich ja nicht mehr stimmt, wie kann ich das umgehen?
Der vergleicht ja das aktuelle mit dem nächsten und da ist es klar, dass eine Zeile nicht genommen wird. Ich sollte ihm noch eine Bedingung gebe, die besagt wenn beide Zahlen nicht mehr überseinstimmen, dann nimm Zahle an Position k und spring zur nächsten oder sowas in der Art... ???:L

JTable:
Code:
1600 | Test | [email]test@test.de[/email] | 10 
1600 | Test | [email]test@test.de[/email] | 11 
1600 | Test | [email]test@test.de[/email] | 12 
1650 | Test1 | [email]test1@test1.de[/email] | 20 
1650 | Test1 | [email]test1@test1.de[/email] | 21

Emails:
Code:
Mail1: an Kunde 1600 
1600 | Test | [email]test@test.de[/email] | 10 
1600 | Test | [email]test@test.de[/email] | 11 

Mail2: an Kunde 1650 
1650 | Test1 | [email]test1@test1.de[/email] | 20
 

Mag1c

Top Contributor
Hi,

dann mußt du den akt. Code nochmal posten :? So, wie ich mir das gedacht habe, hätte es funktionieren müssen.

Gruß
Mag1c
 
L

Louis2

Gast
Hi Mag1c,

das Problem liegt in der while Bedingung, der geht sie ja nur durch wenn aktuell=nächst, irgendwann muss er raus...

Aktueller code:
Code:
t = new Thread(new Runnable() 
{ 
    public void run() 
    {                   
        props=new Properties();
        if (main.INIHost != null)
        {
            props.put("mail.smtp.host", main.INIHost);
            props.put("mail.smtp.auth", "true");
        }
        mailConnection=Session.getDefaultInstance(props,null);
        try
        {
            tr = (SMTPTransport)mailConnection.getTransport("smtp");
            tr.connect(main.INIHost, main.hostUser, main.hostPassword);
                        
            dateiStream = new FileWriter(logname); 
            ausgabe = new PrintWriter(dateiStream);
                                       
            for (k=start; k<leng && state == true; k++)
            {
                Object customerNo = table.getModel().getValueAt(k,0);
                try
                {
                    dateiStream1 = new FileWriter(filename); 
                    csvdata = new PrintWriter(dateiStream1);
                    htmltable="<html><body><table border='1' cellpadding='0' cellspacing='0'>";
                    htmltable=htmltable + "<tr>";
                    for (int y=0; y<=selectedColumns.length-1;y++)
                    {
                        htmltable=htmltable + "<td width='175px'><div align='left'>[b]" + table.getColumnName(selectedColumns[y]) + "[/b]</div></td>";
                        csvdata.print(table.getColumnName(selectedColumns[y]) + ";");
                    }
                    htmltable=htmltable + "</tr>";
                    csvdata.println(System.getProperty("line.separator"));                            
                    while (k+1 < leng && customerNo.equals(table.getModel().getValueAt(k+1,0))) 
                    { 
                            htmltable=htmltable + "<tr>"; 
                            for (int y=0; y<=selectedColumns.length-1;y++)
                            {
                                main.appendSubject(ans);
                                yourValue = table.getModel().getValueAt(k, selectedColumns[y]);
                                
                                if (yourValue == null)
                                    htmltable=htmltable+ "<td width='175px'><div align='left'>" + "" + "</div></td>";
                                else 
                                    htmltable=htmltable+ "<td width='175px'><div align='left'>" + yourValue + "</div></td>";
                                
                                main.appendText(table.getColumnName(selectedColumns[y]) + ": " + yourValue + System.getProperty("line.separator"));
                            
                                Object CSVValue = table.getModel().getValueAt(k, selectedColumns[y]); 
                                csvdata.print(CSVValue + ";");
                            }
                               htmltable=htmltable + "</tr>";
                               csvdata.println();
                               k++;
                    }
                    csvdata.close();
                                
                    htmltable=htmltable + "</table></body></html>";
                                              
                    main.appendToEmail(getWert(k));
                                                                               
                    sendMail_Log();
                }
                catch (Exception e6)
                {
                    JOptionPane.showMessageDialog(null, "Error: " + "\n" + e6.getMessage(), "Message", JOptionPane.ERROR_MESSAGE);
                }
                main.setVisible(false);
            }
            ausgabe.close();
        }
        catch (Exception e10)
        {
            JOptionPane.showMessageDialog(null, "Error: " + e10.getMessage() + "\n" + 
"Could not connect to Email Server, please check Host-, User- and Password name", 
"Message", JOptionPane.ERROR_MESSAGE);    
            state=false;
            sendButton.setEnabled(true);
        }
        try
        {
            tr.close();
        }
        catch (Exception e11)
        {
            JOptionPane.showMessageDialog(null, "Error: " + "\n" + e11.getMessage(), "Message", JOptionPane.ERROR_MESSAGE);    
        }
        if (k == leng)
        {
            if (error > 0)
                JOptionPane.showMessageDialog(null, error + " error(s) in test mode, 
a log file has been produced (please check it).", "Message", JOptionPane.ERROR_MESSAGE);   
            else
                JOptionPane.showMessageDialog(null, "The process has been completed without errors, Emails have been sended and a log file produced."); 
            cancelButton.setEnabled(false);
            state=false;
        }
    }
});
t.start();
 

Mag1c

Top Contributor
Hi,

das "k++" sollte eigentlich direkt hinter dem while(...) kommen. Deshalb waren die "..." dahinter. Aber das hätte ja auch nicht funktioniert, ich hatte nicht so genau hingesehen und dachte, daß du vor dem while schon die erste Zeile bearbeitest. Nun seh ich, daß das ja der Tabellenkopf ist ;)

noch ein Versuch, diesmal mit for-Schleife statt while:

Code:
for (;k < leng; k++) {
  ...
  if (k+1 < leng && !customerNo.equals(table.getModel().getValueAt(k+1,0)))
    break;
}

Du machst also eine for-Schleife innerhalb einer for-Schleife mit der gleichen Index-Variablen. Die if-Abfrage am Ende der inneren for-Schleife beendet diese, wenn der nächste Datensatz eine andere customerNo hat.

Gruß
Mag1c
 
L

Louis2

Gast
@Mag1c: Wird immer besser :wink:

Nun wird aber die letzte mail nicht versendet, bzw. die letzte Zeile der JTable.
Es wird ja solange überprüft wie es in der JTable Zeilen gibt und ob aktuelle=nächst. Anscheinend wird diese Überprüfung auch in der letzten Zeile durchgeführt und da es keine nächste Nummer gibt (keine Zeile mehr), wird die Email nicht versendet und er bringt meine Catch Exception beim versenden... so würde ich das Problem vermuten...
 

Mag1c

Top Contributor
Hmm,

setz mal bitte hinter die beiden "for" ein System.out

System.out.println("outer for k = "+k);

System.out.println("inner for k = "+k);

was kommt da raus ?

Gruß
Mag1c
 
L

Louis2

Gast
Wenn leng=4 dann:
Code:
outer for k = 0
inner for k = 0
outer for k = 1
inner for k = 1
outer for k = 2
inner for k = 2
outer for k = 3
inner for k = 3

Laut meiner Exception versucht er auf 4 zuzugreifen, macht also nochmal k+1 und da findet er nichts.

Wird von der StackTrace auch bestätigt:
Code:
java.lang.ArrayIndexOutOfBoundsException: 4
        at emailclient.TableSorter.modelIndex(TableSorter.java:239)
        at emailclient.TableSorter.getValueAt(TableSorter.java:276)
        at emailclient.EmailClient.getWert(EmailClient.java:997)
        at emailclient.EmailClient$4.run(EmailClient.java:427)
        at java.lang.Thread.run(Thread.java:595)
 

KSG9|sebastian

Top Contributor
ähm....groupier die datensätze, entweder bei der SELECT Abfrage oder später im Programm...


Code:
Map kundenAuftraege = new HashMap();
ArrayList neu;
for(int i=0; i<datensaetze.size();i++){
   //Zeile i holen   
   if(kundenAuftraege.containsKey(i.getCustomerNo()){
      ArrayList al = (ArrayList)kundenAuftraege.get(i.getCustomerNo());
       al.add(i);
       kundenAuftraege.put(i.getCustomerNo(), al);
    } else{
       neu = new ArrayList();
       neu.add(s);
       kundenAuftraege.put(s.getCustomerNo(), neu);
    }
}

Dannach dann über map-values iterieren, da drin über die ArrayList iterieren und die mails rausschicken

//Edit: ArrayList in ner Map als Value ist zwar kein schönes Design, aber zig verschatelte Schleifen und If's sind nicht viel besser ;D
 

Mag1c

Top Contributor
Nö,

ich hatte eigentlich eine Sicherung eingebaut, daß er nicht über die letzte Zeile hinausgeht. Poste mal nochmal den akt. Code (am besten in deinen ersten Post hier, sieht ja sonst keiner mehr durch ;) )

Gruß
Mag1c
 

Mag1c

Top Contributor
Hi,

das System.out.println("outer for k = "+k); sollte natürlich direkt hinter das äußere "for" :roll:
Nochmal plz.

Edit: habe doch noch einen Fehler gefunden. Ersetze mal bitte

if (k+1 < leng && !customerNo.equals(table.getModel().getValueAt(k+1,0)))

durch

if (k+1 == leng || !customerNo.equals(table.getModel().getValueAt(k+1,0)))

Gruß
Mag1c
 

Mag1c

Top Contributor
@Seb: klar ist das umständlich. Hatte ihm ganz am Anfang schon mal empfohlen, etwas Struktur in die ganze Sache zu bringen. Aber wenn er das nicht will oder kann, helfen wir ihm mit solchen Code-Stücken nicht wirklich weiter.

Gruß
Mag1c
 
L

Louis2

Gast
Hi Ihr beiden :wink:

@Seb: Deine Idee finde ich gut, aber war mit meinem Code fast fertig, da wollte ich nicht viel ändern. Da es jetzt läuft, werde ich dein Code bei mir implementieren (hab dann schon eine lauffähige Version).
@Mag1c: :toll: hat geklappt, lag an der Abbruch Bedingung :wink:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Swing JTextArea als TableCellRenderer in JTable - wie Zeilen selektieren? Allgemeine Java-Themen 47
L jTable drag & drop einzelner Zeilen Allgemeine Java-Themen 4
H JTable Löschen [Alle Zeilen aufeinmal Löschen] Allgemeine Java-Themen 6
KeTho1712 Java Swing: JTable standardmäßig füllen, sodass bei Start bereits Datensätze gespeichert sind Allgemeine Java-Themen 1
D JTable mit JTextAreas in den Zellen Allgemeine Java-Themen 8
X Swing JTable zeigt nichts Allgemeine Java-Themen 4
G jTable aktualisieren?! Allgemeine Java-Themen 1
S JTable - mehrere ausgewählte Rows in ArrayList Allgemeine Java-Themen 5
A Fehler beim Aktualisieren JTable Allgemeine Java-Themen 1
D falsche Zeile aus JTable in MySQL gelöscht Allgemeine Java-Themen 6
offi Drag and Drop mehrerer File aus Explorer in JTable Allgemeine Java-Themen 1
V JTable Externe Lib Allgemeine Java-Themen 2
F JTable Pfeiltasten-Verhalten Allgemeine Java-Themen 1
T jTable Gestaffelte Überschriften Allgemeine Java-Themen 22
Paul15 2D Arraylist in Jtable Allgemeine Java-Themen 1
R jTable, nur Werte zwischen 2 Double values ausgeben Allgemeine Java-Themen 3
B Klassen JTable mit einer Liste Allgemeine Java-Themen 0
A JTable Bilder Allgemeine Java-Themen 1
F JTable mit Zellen die sich durch andere Eingaben füllen Allgemeine Java-Themen 1
A JTable - CellRange auslesen Allgemeine Java-Themen 2
A jTable Renderer Allgemeine Java-Themen 5
N JTable filtern Allgemeine Java-Themen 3
hdi JTable#print & Druckgröße Allgemeine Java-Themen 6
S JTable: Model durch ein anderes ersetzen Allgemeine Java-Themen 2
G JTable: ListSelectionListener removen Allgemeine Java-Themen 8
M JTable + ArrayList Allgemeine Java-Themen 3
G Aktualisierung einer JTable erfolgt nicht zuverlässig Allgemeine Java-Themen 14
E Hintergrund einer JTable änden Allgemeine Java-Themen 2
G Darstellung von Ergebnissen einer Dokumentensuche über eine JTable Allgemeine Java-Themen 19
Iron Monkey Inhalt von JTable in die Textdatei mit StringWidth schreiben Allgemeine Java-Themen 3
P jTable getSelectedRow? Allgemeine Java-Themen 2
B JTable eigene Daten Add Methode Allgemeine Java-Themen 2
B LEERE JTable MouseListener + popupmenu Allgemeine Java-Themen 2
X xml aus Zip in JTable Allgemeine Java-Themen 2
S JTable und Spalten löschen Frage Allgemeine Java-Themen 5
H JTable per iText in PDF: Größenanpassung möglich? Allgemeine Java-Themen 2
F XML zu JTable mit JDOM Allgemeine Java-Themen 2
E JTable wird nicht angezeigt Allgemeine Java-Themen 11
Screen ImageIcon in Cell der JTable Allgemeine Java-Themen 2
G JTable mit Keylistener geht nicht Allgemeine Java-Themen 3
C Swing JTable Vector aus DB adden Allgemeine Java-Themen 3
A Swing JTable Polymorphismus Allgemeine Java-Themen 2
trash super + JTable Allgemeine Java-Themen 7
D JTable -> 1Spalte nur zahlen Allgemeine Java-Themen 2
L JTABLE setvalueat methode! Allgemeine Java-Themen 16
C Swing Daten zwischen JTable teilen Allgemeine Java-Themen 6
hdi JTable: Sortierung von Date-Objekten Allgemeine Java-Themen 4
B JTable nach Icon sortieren Allgemeine Java-Themen 6
N Exception beim auslesen einer JTable Allgemeine Java-Themen 5
M jdesktop binding: jTable update nach Änderung... Allgemeine Java-Themen 3
D JTable mit GROUP BY Allgemeine Java-Themen 23
martin82 Regex - JTable - Filter Allgemeine Java-Themen 10
X JTable mit Checkboxen -> Setzen (true/false) der Checkboxen per Mouseklick... Allgemeine Java-Themen 3
P JTable drucken Allgemeine Java-Themen 8
A JTable Feldwerte in JTextFelder mit blättern Allgemeine Java-Themen 5
DStrohma [Erledigt] Wieso kann ich Taste 'ENTER' in JTable nicht belegen? Allgemeine Java-Themen 2
M jTable Allgemeine Java-Themen 19
D jTable und TableModel Allgemeine Java-Themen 2
B Exception bei leerem JTable verhindern Allgemeine Java-Themen 10
A Observable BeansBinding an einer JTable bzw. JXTable Allgemeine Java-Themen 3
P Textfile -> Array -> JTable Allgemeine Java-Themen 9
S JTable Aktuelisieren ber Wie ? Allgemeine Java-Themen 4
MQue JComboBox in JTable Allgemeine Java-Themen 4
J Ergebnismenge eines SQL-Queries in JTable anzeigen Allgemeine Java-Themen 3
MQue JTable alles rechts Allgemeine Java-Themen 8
G Checkboxen abfragen,Auswahl sichern, JTable laden Allgemeine Java-Themen 2
G Hibernate, JTable und Performance Allgemeine Java-Themen 17
R JTable und Cell Renderer Allgemeine Java-Themen 3
M JTable: Anzahl Zeichen bei Eingabe Allgemeine Java-Themen 2
S Welche Speicherung von Daten bei Kalendarfunktion der jtable Allgemeine Java-Themen 7
J keylistener auf jtable Allgemeine Java-Themen 19
C JTable, Abstand zwischen Zellen Allgemeine Java-Themen 2
G Eindeutiges Identifizieren einer JTable/Component z.laufzeit Allgemeine Java-Themen 2
D JTable -> ArrayIndexOutOfBoundsException bei Mausklick Allgemeine Java-Themen 2
S JTable editieren + in JTextField schreiben Allgemeine Java-Themen 7
G Daten in / für JTable beim Scrollen nachladen? Allgemeine Java-Themen 5
M JTable verändert Position auf meinem JPanel Allgemeine Java-Themen 3
P JTable Allgemeine Java-Themen 2
P JTable setDataVector Allgemeine Java-Themen 2
D Scrollbalken in meiner JTable auf einmal weg. Allgemeine Java-Themen 2
P JTable Allgemeine Java-Themen 8
P JButtons mit JTable verknüpfen Allgemeine Java-Themen 16
G fehler bei JTable mit JDK1.6 Allgemeine Java-Themen 4
M CheckBox in JTable - ich verzweifle gleich Allgemeine Java-Themen 2
P JTable/Vector Allgemeine Java-Themen 5
P JTable Allgemeine Java-Themen 4
E JButton bleibt in der JTable Allgemeine Java-Themen 2
E JButton in einer Zelle von JTable Allgemeine Java-Themen 16
P JTable selektierte Zeile mitwandern Allgemeine Java-Themen 2
F Checkbox in JTable , eigener Cellrenderer -wie gehts weiter? Allgemeine Java-Themen 2
P JTable suchen in einer Spalte Allgemeine Java-Themen 24
G JTable wird nicht richtig aufgebaut Allgemeine Java-Themen 9
C Ausdrucken einer JTable in eine Datei mit Erhalt des Formats Allgemeine Java-Themen 3
W Columns austauschen/verschieben von jtable Allgemeine Java-Themen 3
P 3rd party JTable libraries (freeware/opensource) Allgemeine Java-Themen 19
D JTable aus Eclipse Ok, kompeliert aber nicht Allgemeine Java-Themen 6
G mySQL und JTable Allgemeine Java-Themen 7
D JTable und Buttons Allgemeine Java-Themen 16
B JScrollPane in einer JTable aktualisieren? Allgemeine Java-Themen 9
G CheckBox in JTable Allgemeine Java-Themen 3

Ähnliche Java Themen


Oben