# ComboBox -> SQL -> ArrayList -> JTable?



## Louis2 (15. Jun 2005)

Hallo,

folgendes. Ich habe ein Frame mit einer JComboBox und einer JTable. Wenn ich auf ein Wert der JComboBox klicke *sollte* eine SQL Abfrage durchgeführt werden, die Werte in eine ArrayList gespeichert werden (da ich die Anzahl an Zeilen aus der DB nicht kenne) und dann in die JTable eingelesen werden.

Meine Frage dazu:
1. Geht es überhaupt prinzipiell aus einer ArrayList Daten in eine JTable zu schreiben?
2. Es gibt Fehler von Zeile 90-100 und 111. Warum? Irgendwie kann er nicht richtig auf " java.util.List" oder "import java.sql.*;" zugreifen, liegt es daran, dass das ganze in eine "separate Prozedur" steht? (public void itemStateChanged(ItemEvent e) {)??
3. Ich mir sicher, dass es bei der Umsetzung einige Fehler gibt...
4. Ich möchte danach noch ein Button implementieren und beim drücken soll ein anderes Frame oder eine andere Klasse geladen werden, wie geht das?

Also wer Zeit hat kann gerne helfen :wink: 


```
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel; 
import java.io.*;
import java.sql.*;

public class Combo
{
  public static void main(String args[])
  {
    String INIEmailFrom;
    String INIHost;
    BufferedReader b; 
    String line; 
    String[] tmp = null;
    int counter=0;
    String DBServer;
    String DBName;
    String DBUser;
    String DBPassword;
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    String comboinhalt[] = 
    {
        "Kundenaufträge", "lfd. Angebote", "Lieferscheine", "Rechnungen", "Historische Angebote",
        "Umsatzdaten", "Tool schliessen"
    };

    JComboBox combo = new JComboBox();
    try 
    { 
        File Data = new File("C:/Dokumente und Einstellungen/Lempert/Desktop/Project/Data.ini"); 
        b = new BufferedReader(new InputStreamReader(new FileInputStream(Data)));  
        while ((line = b.readLine()) != null) 
        { 
            tmp = line.split(": ");  
            if (counter==0)
            INIEmailFrom=tmp[1];
            else if (counter==1)
            INIHost=tmp[1]; 
            else if (counter==2)
            DBServer=tmp[1];
            else if (counter==3)
            DBName=tmp[1];
            else if (counter==4)
            DBUser=tmp[1];
            else if (counter==5)
            DBPassword=tmp[1];
            counter++;
        }     
            b.close(); 
    } 
    catch (IOException e) 
    { 
        System.out.println("Error during data reading"); 
    } 
    try 
    { 
        String resultauftrag=new String();
        Class.forName("oracle.jdbc.driver.OracleDriver"); 
        //DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());
        String url = "jdbc:oracle:thin:@"+DBServer+":1521:"+DBName; 
        Connection connection = DriverManager.getConnection(url, DBUser, DBPassword);
        connection.setAutoCommit(true);
    }
    catch(ClassNotFoundException e1) 
    { 
        e1.printStackTrace(); 
    } 
    catch(Exception e2) 
    {    
        e2.printStackTrace(); 
    }
  

    for (int i = 0; i < comboinhalt.length; i++)
        combo.addItem(comboinhalt[i]);
        frame.getContentPane().add(combo, BorderLayout.WEST);
        combo.addItemListener(new ItemListener() 
    {
        public void itemStateChanged(ItemEvent e) 
        {
            String resultauftrag=new String();
            JComboBox selectedChoice = (JComboBox)e.getSource();
            if (selectedChoice.getSelectedItem().equals("Tool schliessen"))
              System.exit(0);
            if (selectedChoice.getSelectedItem().equals("Kundenaufträge"))
                Statement auftrag = connection.createStatement(); 
                resultauftrag = "SELECT customerid, AUF001, AUF012, AUF004, AUF015, AUF016, AUF020 FROM Auftrag WHERE customerid in (SELECT customerid FROM customer)"; 
                ResultSet rs = auftrag.executeQuery(resultauftrag); 
                                
                java.util.List customerid= new ArrayList();
                java.util.List auf001 = new ArrayList(); 
                java.util.List auf012 = new ArrayList();
                java.util.List auf004 = new ArrayList(); 
                java.util.List auf015 = new ArrayList();
                java.util.List auf016 = new ArrayList(); 
                java.util.List auf020 = new ArrayList();
                while (rs.next()) 
                { 
                    customerid.add(rs.getString(1));
                    auf001.add(rs.getString(2)); 
                    auf012.add(rs.getString(3)); 
                    auf004.add(rs.getString(4)); 
                    auf015.add(rs.getString(5));
                    auf016.add(rs.getString(6)); 
                    auf020.add(rs.getString(7));
                } 
                Map map = new HashMap(); 
                map.put("CustomerID", customerid);
                map.put("Auftragsnummer", auf001); 
                map.put("Kommissionsnummer", auf012); 
                map.put("Gedruckt am", auf004); 
                map.put("Umsatzwert", auf015); 
                map.put("WE", auf016); 
                map.put("Zustand", auf020); 

                java.util.List listcustomerid = (java.util.List) map.get("CustomerID"); 
                java.util.List listauf001 = (java.util.List) map.get("Auftragsnummer"); 
                java.util.List listauf012 = (java.util.List) map.get("Kommissionsnummer"); 
                java.util.List listauf004 = (java.util.List) map.get("Gedruckt am"); 
                java.util.List listauf015 = (java.util.List) map.get("Umsatzwert"); 
                java.util.List listauf016 = (java.util.List) map.get("WE"); 
                java.util.List listauf020 = (java.util.List) map.get("Zustand"); 
                String outcustomerid;
                String outlist001; 
                String outlist012;
                String outlist004;
                String outlist015;
                String outlist016;
                String outlist020;
                int len=listauf001.size();
                
                for (int n=0;n<len;n++) 
                { 
                    outcustomerid = (String) listcustomerid.get(n);
                    outlist001 = (String) listauf001.get(n); 
                    outlist012 = (String) listauf012.get(n); 
                    outlist004 = (String) listauf004.get(n); 
                    outlist015 = (String) listauf015.get(n); 
                    outlist016 = (String) listauf016.get(n); 
                    outlist020 = (String) listauf020.get(n); 
                    
                    String[][] data = new String[][]
                    { 
                        {"outcustomerid", "outlist001", "outlist012", "outlist004", "outlist015", "outlist016", "outlist020"}, 
                    }; 
       
                    String[] title = new String[]
                    { 
                        "Auftragsnummer", "Kommissionsnummer", "Gedruckt am", "Umsatzwert", "WE", "Zustand" 
                    }; 
                    DefaultTableModel model = new DefaultTableModel (data, title); 
                    JTable table = new JTable(model);
                    frame.getContentPane().add( new JScrollPane( table ), BorderLayout.SOUTH );
                }
        }
    });
    frame.pack();
    frame.setVisible( true );
  }
}
```


----------



## mic_checker (15. Jun 2005)

Hast du schon die FAQ Beiträge von Beni zum Thema JTable gelesen? Falls nicht solltest du das nachholen.

Ansonsten kann er deine HashMap nicht finden, weil du kein java.util importierst.

Du kannst ja dann noch java.util.List und java.util.ArrayList importieren , sieht schöner aus als jedes mal die komplette Bezeichnung zu verwenden.


----------



## Louis2 (15. Jun 2005)

@mic_checker: Tutorial habe ich mir schon paar mal angeschaut und auch die Hilfe benutzt, trotzdem sehe ich nicht was ich im Moment bei der Darstellung falsch machen...

Das mit dem java.util.*; naja... easy *schäm*
Fehler treten immer noch in Zeile 91, 93 und 158.
Z.B Zeile 91 " Combo.java [91:1] not a statement
Statement auftrag = connection.createStatement();"


----------



## mic_checker (15. Jun 2005)

Poste doch mal den aktuellen Code und markiere die Zeilen bei denen er meckert.

V.a. solltest du aber mal das Design des Progs überarbeiten...


----------



## Louis2 (15. Jun 2005)

Hm am Design... ja aber die Frage ist, ob das Prog. mit meinem Code die JTable mit den Werten der SQL Abfrage richtig füllt (wenn "Kundenaufträge" in der ComboBox ausgewählt wurde).


```
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel; 
import java.io.*;
import java.sql.*;
import java.util.*;
import java.util.ArrayList;

public class Combo
{
  public static void main(String args[])
  {
    JComboBox combo = new JComboBox();
    String INIEmailFrom;
    String INIHost;
    BufferedReader b; 
    String line; 
    String[] tmp = null;
    int counter=0;
    String DBServer;
    String DBName;
    String DBUser;
    String DBPassword;
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible( true );
    frame.pack();
    
    String comboinhalt[] = 
    {
        "Kundenaufträge", "lfd. Angebote", "Lieferscheine", "Rechnungen", "Historische Angebote",
        "Umsatzdaten", "Tool schliessen"
    };

    
    try 
    { 
        File Data = new File("C:/Dokumente und Einstellungen/Lempert/Desktop/Project/Data.ini"); 
        b = new BufferedReader(new InputStreamReader(new FileInputStream(Data)));  
        while ((line = b.readLine()) != null) 
        { 
            tmp = line.split(": ");  
            if (counter==0)
            INIEmailFrom=tmp[1];
            else if (counter==1)
            INIHost=tmp[1]; 
            else if (counter==2)
            DBServer=tmp[1];
            else if (counter==3)
            DBName=tmp[1];
            else if (counter==4)
            DBUser=tmp[1];
            else if (counter==5)
            DBPassword=tmp[1];
            counter++;
        }     
            b.close(); 
    } 
    catch (IOException e) 
    { 
        System.out.println("Error during data reading"); 
    } 
    try 
    { 
        String resultauftrag=new String();
        Class.forName("oracle.jdbc.driver.OracleDriver"); 
        //DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());
        String url = "jdbc:oracle:thin:@"+DBServer+":1521:"+DBName; 
        Connection connection = DriverManager.getConnection(url, DBUser, DBPassword);
        connection.setAutoCommit(true);
    }
    catch(ClassNotFoundException e1) 
    { 
        e1.printStackTrace(); 
    } 
    catch(Exception e2) 
    {    
        e2.printStackTrace(); 
    }
  
    for (int i = 0; i < comboinhalt.length; i++)
        combo.addItem(comboinhalt[i]);
        frame.getContentPane().add(combo, BorderLayout.WEST);
        combo.addItemListener(new ItemListener() 
    {
        public void itemStateChanged(ItemEvent e) 
        {
            String resultauftrag=new String();
            JComboBox selectedChoice = (JComboBox)e.getSource();
            if (selectedChoice.getSelectedItem().equals("Tool schliessen"))
              System.exit(0);
            if (selectedChoice.getSelectedItem().equals("Kundenaufträge"))
                Statement auftrag = connection.createStatement();       <---------------- Fehler (not a Statement & ";" erforderlich) 
                resultauftrag = "SELECT customerid, AUF001, AUF012, AUF004, AUF015, AUF016, AUF020 FROM Auftrag WHERE customerid in (SELECT customerid FROM customer)"; 
                ResultSet rs = auftrag.executeQuery(resultauftrag);    <------ Fehler (wird wohl Probleme haben "import java.sql.*;" zu finden?)
                                
                java.util.List customerid= new ArrayList();
                java.util.List auf001 = new ArrayList(); 
                java.util.List auf012 = new ArrayList();
                java.util.List auf004 = new ArrayList(); 
                java.util.List auf015 = new ArrayList();
                java.util.List auf016 = new ArrayList(); 
                java.util.List auf020 = new ArrayList();
                while (rs.next()) 
                { 
                    customerid.add(rs.getString(1));
                    auf001.add(rs.getString(2)); 
                    auf012.add(rs.getString(3)); 
                    auf004.add(rs.getString(4)); 
                    auf015.add(rs.getString(5));
                    auf016.add(rs.getString(6)); 
                    auf020.add(rs.getString(7));
                } 
                Map map = new HashMap(); 
                map.put("CustomerID", customerid);
                map.put("Auftragsnummer", auf001); 
                map.put("Kommissionsnummer", auf012); 
                map.put("Gedruckt am", auf004); 
                map.put("Umsatzwert", auf015); 
                map.put("WE", auf016); 
                map.put("Zustand", auf020); 

                java.util.List listcustomerid = (java.util.List) map.get("CustomerID"); 
                java.util.List listauf001 = (java.util.List) map.get("Auftragsnummer"); 
                java.util.List listauf012 = (java.util.List) map.get("Kommissionsnummer"); 
                java.util.List listauf004 = (java.util.List) map.get("Gedruckt am"); 
                java.util.List listauf015 = (java.util.List) map.get("Umsatzwert"); 
                java.util.List listauf016 = (java.util.List) map.get("WE"); 
                java.util.List listauf020 = (java.util.List) map.get("Zustand"); 
                String outcustomerid;
                String outlist001; 
                String outlist012;
                String outlist004;
                String outlist015;
                String outlist016;
                String outlist020;
                int len=listauf001.size();
                
                for (int n=0;n<len;n++) 
                { 
                    outcustomerid = (String) listcustomerid.get(n);
                    outlist001 = (String) listauf001.get(n); 
                    outlist012 = (String) listauf012.get(n); 
                    outlist004 = (String) listauf004.get(n); 
                    outlist015 = (String) listauf015.get(n); 
                    outlist016 = (String) listauf016.get(n); 
                    outlist020 = (String) listauf020.get(n); 
                    
                    String[][] data = new String[][]
                    { 
                        {"outcustomerid", "outlist001", "outlist012", "outlist004", "outlist015", "outlist016", "outlist020"}, 
                    }; 
       
                    String[] title = new String[]
                    { 
                        "Auftragsnummer", "Kommissionsnummer", "Gedruckt am", "Umsatzwert", "WE", "Zustand" 
                    }; 
                    DefaultTableModel model = new DefaultTableModel (data, title); 
                    JTable table = new JTable(model);
                    frame.getContentPane().add( new JScrollPane( table ), BorderLayout.SOUTH );  <---------- Fehler (kann wohl "frame" nicht finden?)
                }
        }
    });
   
  }
}
```


----------



## mic_checker (15. Jun 2005)

Er kennt die connection ja gar nicht, dann kann er auch nicht darauf zugreifen. Also außerhalb von try..catch deklarieren.


----------



## Louis2 (15. Jun 2005)

mic_checker hat gesagt.:
			
		

> Er kennt die connection ja gar nicht, dann kann er auch nicht darauf zugreifen. Also außerhalb von try..catch deklarieren.


Wie meinen genau?
Ich habe jetzt oben Connection connection; definiert aber der Fehler bleibt trotzdem. Ich glaube eher, dass das Prog. Probleme hat das "import java.sql.*;" irgendwie richtig zu benutzen, denn createStatement und executeQuery kommen ja von dem Import...


```
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import javax.swing.table.DefaultTableModel; 
import java.io.*; 
import java.sql.*; 
import java.util.*; 
import java.util.ArrayList; 

public class Combo 
{ 
  public static void main(String args[]) 
  { 
    JComboBox combo = new JComboBox(); 
    String INIEmailFrom; 
    String INIHost; 
    BufferedReader b; 
    String line; 
    String[] tmp = null; 
    int counter=0; 
    String DBServer; 
    String DBName; 
    String DBUser; 
    String DBPassword; 
    JFrame frame = new JFrame(); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setVisible( true ); 
    frame.pack(); 
    Connection connection;   <----------------------------------- NEU
    
    String comboinhalt[] = 
    { 
        "Kundenaufträge", "lfd. Angebote", "Lieferscheine", "Rechnungen", "Historische Angebote", 
        "Umsatzdaten", "Tool schliessen" 
    }; 

    
    try 
    { 
        File Data = new File("C:/Dokumente und Einstellungen/Lempert/Desktop/Project/Data.ini"); 
        b = new BufferedReader(new InputStreamReader(new FileInputStream(Data)));  
        while ((line = b.readLine()) != null) 
        { 
            tmp = line.split(": ");  
            if (counter==0) 
            INIEmailFrom=tmp[1]; 
            else if (counter==1) 
            INIHost=tmp[1]; 
            else if (counter==2) 
            DBServer=tmp[1]; 
            else if (counter==3) 
            DBName=tmp[1]; 
            else if (counter==4) 
            DBUser=tmp[1]; 
            else if (counter==5) 
            DBPassword=tmp[1]; 
            counter++; 
        }      
            b.close(); 
    } 
    catch (IOException e) 
    { 
        System.out.println("Error during data reading"); 
    } 
    try 
    { 
        String resultauftrag=new String(); 
        Class.forName("oracle.jdbc.driver.OracleDriver"); 
        //DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver()); 
        String url = "jdbc:oracle:thin:@"+DBServer+":1521:"+DBName; 
        connection = DriverManager.getConnection(url, DBUser, DBPassword); <---------------------------GEÄNDERT
        connection.setAutoCommit(true); 
    } 
    catch(ClassNotFoundException e1) 
    { 
        e1.printStackTrace(); 
    } 
    catch(Exception e2) 
    {    
        e2.printStackTrace(); 
    }
```


Und wieso ganz unten beim .... ein Fehler kommt ist mir auch ein Rätsel...

```
frame.getContentPane().add( new JScrollPane( table ), BorderLayout.SOUTH );  <---------- Fehler (kann wohl "frame" nicht finden?)
```


----------



## Louis2 (15. Jun 2005)

So nachdem ich um den IF-Teil eine Klammer gesetzt habe und  *final* Connection connection; sowie final JFrame frame = new JFrame(); festgelegt habe, erscheinen die Fehlermeldungen nicht mehr sondern andere...
Nun erscheint als Fehlermeldung:

```
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel; 
import java.io.*;
import java.sql.*;
import java.util.*;
import java.util.ArrayList;

public class Combo
{
  public static void main(String args[])
  {
    JComboBox combo = new JComboBox();
    String INIEmailFrom;
    String INIHost;
    BufferedReader b; 
    String line; 
    String[] tmp = null;
    int counter=0;
    String DBServer;
    String DBName;
    String DBUser;
    String DBPassword;
    final Connection connection;
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible( true );
    frame.pack();
    
    String comboinhalt[] = 
    {
        "Kundenaufträge", "lfd. Angebote", "Lieferscheine", "Rechnungen", "Historische Angebote",
        "Umsatzdaten", "Tool schliessen"
    };

    
    try 
    { 
        File Data = new File("C:/Dokumente und Einstellungen/Lempert/Desktop/Project/Data.ini"); 
        b = new BufferedReader(new InputStreamReader(new FileInputStream(Data)));  
        while ((line = b.readLine()) != null) 
        { 
            tmp = line.split(": ");  
            if (counter==0)
            INIEmailFrom=tmp[1];
            else if (counter==1)
            INIHost=tmp[1]; 
            else if (counter==2)
            DBServer=tmp[1];
            else if (counter==3)
            DBName=tmp[1];
            else if (counter==4)
            DBUser=tmp[1];
            else if (counter==5)
            DBPassword=tmp[1];
            counter++;
        }     
            b.close(); 
    } 
    catch (IOException e) 
    { 
        System.out.println("Error during data reading"); 
    } 
    try 
    { 
        String resultauftrag=new String();
        Class.forName("oracle.jdbc.driver.OracleDriver"); 
        //DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());
        String url = "jdbc:oracle:thin:@"+DBServer+":1521:"+DBName; <---------- DBServer&-Name nicht initialized
        connection = DriverManager.getConnection(url, DBUser, DBPassword); <---------- DBUser&-Password nicht initialized
        connection.setAutoCommit(true);
        
    }
    catch(ClassNotFoundException e1) 
    { 
        e1.printStackTrace(); 
    } 
    catch(Exception e2) 
    {    
        e2.printStackTrace(); 
    }
  
    for (int i = 0; i < comboinhalt.length; i++)
        combo.addItem(comboinhalt[i]);
        frame.getContentPane().add(combo, BorderLayout.WEST);
        combo.addItemListener(new ItemListener() 
    {
        public void itemStateChanged(ItemEvent e) 
        {
            String resultauftrag=new String();
            JComboBox selectedChoice = (JComboBox)e.getSource();
            if (selectedChoice.getSelectedItem().equals("Tool schliessen"))
              System.exit(0);
            if (selectedChoice.getSelectedItem().equals("Kundenaufträge"))
            {                   
                Statement auftrag = connection.createStatement(); <---------- connection nicht initialized / createStatement() must be caught or declared to be thrown
                   
                resultauftrag = "SELECT customerid, AUF001, AUF012, AUF004, AUF015, AUF016, AUF020 FROM Auftrag WHERE customerid in (SELECT customerid FROM customer)"; 
                ResultSet rs = auftrag.executeQuery(resultauftrag); <---------- must be caught or declared to be thrown
                                
                java.util.List customerid= new ArrayList();
                java.util.List auf001 = new ArrayList(); 
                java.util.List auf012 = new ArrayList();
                java.util.List auf004 = new ArrayList(); 
                java.util.List auf015 = new ArrayList();
                java.util.List auf016 = new ArrayList(); 
                java.util.List auf020 = new ArrayList();
            
                while (rs.next()) <---------- must be caught or declared to be thrown
                { 
                    customerid.add(rs.getString(1)); <---------- must be caught or declared to be thrown (bis 7)
                    auf001.add(rs.getString(2)); 
                    auf012.add(rs.getString(3)); 
                    auf004.add(rs.getString(4)); 
                    auf015.add(rs.getString(5));
                    auf016.add(rs.getString(6)); 
                    auf020.add(rs.getString(7));
                } 
                Map map = new HashMap(); 
                map.put("CustomerID", customerid);
                map.put("Auftragsnummer", auf001); 
                map.put("Kommissionsnummer", auf012); 
                map.put("Gedruckt am", auf004); 
                map.put("Umsatzwert", auf015); 
                map.put("WE", auf016); 
                map.put("Zustand", auf020); 

                java.util.List listcustomerid = (java.util.List) map.get("CustomerID"); 
                java.util.List listauf001 = (java.util.List) map.get("Auftragsnummer"); 
                java.util.List listauf012 = (java.util.List) map.get("Kommissionsnummer"); 
                java.util.List listauf004 = (java.util.List) map.get("Gedruckt am"); 
                java.util.List listauf015 = (java.util.List) map.get("Umsatzwert"); 
                java.util.List listauf016 = (java.util.List) map.get("WE"); 
                java.util.List listauf020 = (java.util.List) map.get("Zustand"); 
                String outcustomerid;
                String outlist001; 
                String outlist012;
                String outlist004;
                String outlist015;
                String outlist016;
                String outlist020;
                int len=listauf001.size();
                
                for (int n=0;n<len;n++) 
                { 
                    outcustomerid = (String) listcustomerid.get(n);
                    outlist001 = (String) listauf001.get(n); 
                    outlist012 = (String) listauf012.get(n); 
                    outlist004 = (String) listauf004.get(n); 
                    outlist015 = (String) listauf015.get(n); 
                    outlist016 = (String) listauf016.get(n); 
                    outlist020 = (String) listauf020.get(n); 
                    
                    String[][] data = new String[][]
                    { 
                        {"outcustomerid", "outlist001", "outlist012", "outlist004", "outlist015", "outlist016", "outlist020"}, 
                    }; 
       
                    String[] title = new String[]
                    { 
                        "Auftragsnummer", "Kommissionsnummer", "Gedruckt am", "Umsatzwert", "WE", "Zustand" 
                    }; 
                    DefaultTableModel model = new DefaultTableModel (data, title); 
                    JTable table = new JTable(model);
                    frame.getContentPane().add( new JScrollPane( table ), BorderLayout.SOUTH );
                }
            }
        }    
    });
   
  }
}
```


----------



## mic_checker (15. Jun 2005)

wenn da steht .... exception musst be caught or thrown, dann mach entsprechend nen try...catch Block drum rum.


```
try {
...
} catch(....) {
...
}
```


----------



## Louis2 (15. Jun 2005)

mic_checker hat gesagt.:
			
		

> wenn da steht .... exception musst be caught or thrown, dann mach entsprechend nen try...catch Block drum rum.
> 
> 
> ```
> ...



Erledigt. Und die Meldung mit "not initialized", was ja eigentlich wieder nicht stimmt? Hast Du da ein Vorschlag?


----------



## mic_checker (15. Jun 2005)

setz die anfangs entsprechend auf null.

vor dem schließen musst du dann nur gucken ob die != null sind.


----------



## Wildcard (15. Jun 2005)

noch was grundsätzliches:
main länger als 5 Zeilen -> kein OOP
Der Begriff "Methoden" sagt dir was?   :wink:


----------



## Louis2 (15. Jun 2005)

mic_checker hat gesagt.:
			
		

> setz die anfangs entsprechend auf null.
> 
> vor dem schließen musst du dann nur gucken ob die != null sind.



Erledigt, jetzt bleibt nur noch (hoffentlich):
Combo.java [98:1] variable connection might not have been initialized
                    Statement auftrag = connection.createStatement(); 
                                                  ^

Oben als final Connection connection; definiert... ???:L


----------



## mic_checker (15. Jun 2005)

setz halt auf null und da wo nötig kontrollier ob != null.

Nur solltest du dir echt eine andere Art zu programmieren angewöhnen....du musst nicht alles in die main packen.


----------



## Louis2 (15. Jun 2005)

So habe mal mein Code etwas besser dargestellt:

Jetzt kommen Fehler bzg. der main Klasse, also das "frame" kann nicht gelesen werden.
"non-static variable frame cannot be referenced from a static context"


```
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel; 
import java.io.*;
import java.sql.*;
import java.util.*;
import java.util.ArrayList;

public class Combo extends JFrame
{
    JComboBox combo = new JComboBox();
    String INIEmailFrom;
    String INIHost;
    BufferedReader b; 
    String line; 
    String[] tmp = null;
    int counter=0;
    String DBServer=null;
    String DBName=null;
    String DBUser=null;
    String DBPassword=null;
    final Connection connection;
    final JFrame frame = new JFrame();
    
    public Combo()
    {
        String comboinhalt[] = 
        {
            "Kundenaufträge", "lfd. Angebote", "Lieferscheine", "Rechnungen", "Historische Angebote", "Umsatzdaten", "Tool schliessen"
        };
        
        try 
        { 
            File Data = new File("C:/Dokumente und Einstellungen/Lempert/Desktop/Project/Data.ini"); 
            b = new BufferedReader(new InputStreamReader(new FileInputStream(Data)));  
            while ((line = b.readLine()) != null) 
            { 
                tmp = line.split(": ");  
                if (counter==0)
                INIEmailFrom=tmp[1];
                else if (counter==1)
                INIHost=tmp[1]; 
                else if (counter==2)
                DBServer=tmp[1];
                else if (counter==3)
                DBName=tmp[1];
                else if (counter==4)
                DBUser=tmp[1];
                else if (counter==5)
                DBPassword=tmp[1];
                counter++;
            }     
                b.close(); 
        } 
        catch (IOException e) 
        { 
            System.out.println("Error during data reading"); 
        } 
        
        try 
        { 
            String resultauftrag=new String();
            Class.forName("oracle.jdbc.driver.OracleDriver"); 
            //DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());
            String url = "jdbc:oracle:thin:@"+DBServer+":1521:"+DBName; 
            connection = DriverManager.getConnection(url, DBUser, DBPassword);
            connection.setAutoCommit(true);
        }
        catch(ClassNotFoundException e1) 
        { 
            e1.printStackTrace(); 
        } 
        catch(Exception e2) 
        {       
            e2.printStackTrace(); 
        }
        
        for (int i = 0; i < comboinhalt.length; i++)
            combo.addItem(comboinhalt[i]);
            frame.getContentPane().add(combo, BorderLayout.WEST);
            combo.addItemListener(new ItemListener() 
        {
            public void itemStateChanged(ItemEvent e) 
            {
                String resultauftrag=new String();
                JComboBox selectedChoice = (JComboBox)e.getSource();
                if (selectedChoice.getSelectedItem().equals("Tool schliessen"))
                System.exit(0);
                if (selectedChoice.getSelectedItem().equals("Kundenaufträge"))
                try
                {
                    Statement auftrag = connection.createStatement(); 
                    resultauftrag = "SELECT customerid, AUF001, AUF012, AUF004, AUF015, AUF016, AUF020 FROM Auftrag WHERE customerid in (SELECT customerid FROM customer)"; 
                    ResultSet rs = auftrag.executeQuery(resultauftrag); 
                                
                    java.util.List customerid= new ArrayList();
                    java.util.List auf001 = new ArrayList(); 
                    java.util.List auf012 = new ArrayList();
                    java.util.List auf004 = new ArrayList(); 
                    java.util.List auf015 = new ArrayList();
                    java.util.List auf016 = new ArrayList(); 
                    java.util.List auf020 = new ArrayList();
            
                    while (rs.next()) 
                    { 
                        customerid.add(rs.getString(1));
                        auf001.add(rs.getString(2)); 
                        auf012.add(rs.getString(3)); 
                        auf004.add(rs.getString(4)); 
                        auf015.add(rs.getString(5));
                        auf016.add(rs.getString(6)); 
                        auf020.add(rs.getString(7));
                    } 
                    Map map = new HashMap(); 
                    map.put("CustomerID", customerid);
                    map.put("Auftragsnummer", auf001); 
                    map.put("Kommissionsnummer", auf012); 
                    map.put("Gedruckt am", auf004); 
                    map.put("Umsatzwert", auf015); 
                    map.put("WE", auf016); 
                    map.put("Zustand", auf020); 

                    java.util.List listcustomerid = (java.util.List) map.get("CustomerID"); 
                    java.util.List listauf001 = (java.util.List) map.get("Auftragsnummer"); 
                    java.util.List listauf012 = (java.util.List) map.get("Kommissionsnummer"); 
                    java.util.List listauf004 = (java.util.List) map.get("Gedruckt am"); 
                    java.util.List listauf015 = (java.util.List) map.get("Umsatzwert"); 
                    java.util.List listauf016 = (java.util.List) map.get("WE"); 
                    java.util.List listauf020 = (java.util.List) map.get("Zustand"); 
                    String outcustomerid;
                    String outlist001; 
                    String outlist012;
                    String outlist004;
                    String outlist015;
                    String outlist016;
                    String outlist020;
                    int len=listauf001.size();
                
                    for (int n=0;n<len;n++) 
                    { 
                        outcustomerid = (String) listcustomerid.get(n);
                        outlist001 = (String) listauf001.get(n); 
                        outlist012 = (String) listauf012.get(n); 
                        outlist004 = (String) listauf004.get(n); 
                        outlist015 = (String) listauf015.get(n); 
                        outlist016 = (String) listauf016.get(n); 
                        outlist020 = (String) listauf020.get(n); 
                    
                        String[][] data = new String[][]
                        { 
                            {"outcustomerid", "outlist001", "outlist012", "outlist004", "outlist015", "outlist016", "outlist020"}, 
                        }; 
       
                        String[] title = new String[]
                        { 
                            "Auftragsnummer", "Kommissionsnummer", "Gedruckt am", "Umsatzwert", "WE", "Zustand" 
                        }; 
                        DefaultTableModel model = new DefaultTableModel (data, title); 
                        JTable table = new JTable(model);
                        frame.getContentPane().add( new JScrollPane( table ), BorderLayout.SOUTH );
                    }
                }
                catch(Exception e2) 
                {    
                    e2.printStackTrace(); 
                }
            }    
        });
    }    
    public static void main(String args[])
    {
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible( true );
        frame.pack();
    }
}
```


----------



## mic_checker (15. Jun 2005)

Das sind die Quittungen für den anfangs schlechten Entwurf 

Du kannst es ja so machen, dass du den Frame in main erzeugst, dann kannst du oben deinen final frame löschen und musst entsprechend im konstruktor noch ein paar zeilen anpassen....ist zwar mehr arbeit als es einfach static zu machen etc. aber man sollte static nicht verwenden nur um das prog schneller fertig zu kriegen...


----------



## Louis2 (15. Jun 2005)

mic_checker hat gesagt.:
			
		

> Das sind die Quittungen für den anfangs schlechten Entwurf
> 
> Du kannst es ja so machen, dass du den Frame in main erzeugst, dann kannst du oben deinen final frame löschen und musst entsprechend im konstruktor noch ein paar zeilen anpassen....ist zwar mehr arbeit als es einfach static zu machen etc. aber man sollte static nicht verwenden nur um das prog schneller fertig zu kriegen...



ALso ich habe den Frame in der mail Klasse erzeugt, oben gelöscht, und das static entfernt.
So nun kommt die übliche Meldung " cannot resolve symbol" an 2 Stellen im Konstruktor, weil ja jetzt "frame" in der main Klasse deklariert ist. D.h ich muss irgendwie auf die main Klasse zugreifen, auch die Variable, könnte super() da helfen?


----------



## mic_checker (15. Jun 2005)

lass es einfach weg....mach also einfach getContentPane().add(...)

bzw. ich habe mich eben wohl unklar ausgedrückt: Erzeuge in main ein neues Objekt von deiner Combo-Klasse, welche ja von JFrame abgeleitet ist.


----------



## Louis2 (15. Jun 2005)

Nun können wir uns dem Kern des Programms wenden, also das Prog. startet es erscheint aber nur die JComboBox. Soweit i.O. So nachdem "Kundenaufträge" selektiert wurde, erscheint die JTable und nur mit 1 Zeile, und zwar die erste Zeile der DB-Tabelle. Nun brauche ich drumherum eine FOR-Schleife die alle Zeilen anzeigt der DB Tabelle bis es keine mehr gibt.

1. Brauche ich 2 Parameter x und y? 
2. Wenn das Applet gestartet wird hat es die Grösse der JComboBox, und wenn die Tabelle dann angelegt wird, wird das Fenster nicht grösser, wie kriege ich das hin?


```
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel; 
import java.io.*;
import java.sql.*;
import java.util.*;
import java.util.ArrayList;

public class Combo extends JFrame
{
    JComboBox combo = new JComboBox();
    String INIEmailFrom;
    String INIHost;
    BufferedReader b; 
    String line; 
    String[] tmp = null;
    int counter=0;
    String DBServer=null;
    String DBName=null;
    String DBUser=null;
    String DBPassword=null;
    Connection connection;
    
    
    public Combo()
    {
        String comboinhalt[] = 
        {
            "Kundenaufträge", "lfd. Angebote", "Lieferscheine", "Rechnungen", "Historische Angebote", "Umsatzdaten", "Tool schliessen"
        };
        
        try 
        { 
            File Data = new File("C:/Dokumente und Einstellungen/Lempert/Desktop/Project/Data.ini"); 
            b = new BufferedReader(new InputStreamReader(new FileInputStream(Data)));  
            while ((line = b.readLine()) != null) 
            { 
                tmp = line.split(": ");  
                if (counter==0)
                INIEmailFrom=tmp[1];
                else if (counter==1)
                INIHost=tmp[1]; 
                else if (counter==2)
                DBServer=tmp[1];
                else if (counter==3)
                DBName=tmp[1];
                else if (counter==4)
                DBUser=tmp[1];
                else if (counter==5)
                DBPassword=tmp[1];
                counter++;
            }     
                b.close(); 
        } 
        catch (IOException e) 
        { 
            System.out.println("Error during data reading"); 
        } 
        
        try 
        { 
            String resultauftrag=new String();
            Class.forName("oracle.jdbc.driver.OracleDriver"); 
            //DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());
            String url = "jdbc:oracle:thin:@"+DBServer+":1521:"+DBName; 
            connection = DriverManager.getConnection(url, DBUser, DBPassword);
            connection.setAutoCommit(true);
        }
        catch(ClassNotFoundException e1) 
        { 
            e1.printStackTrace(); 
        } 
        catch(Exception e2) 
        {       
            e2.printStackTrace(); 
        }
        
        for (int i = 0; i < comboinhalt.length; i++)
            combo.addItem(comboinhalt[i]);
            getContentPane().add(combo, BorderLayout.WEST);
            combo.addItemListener(new ItemListener() 
        {
            public void itemStateChanged(ItemEvent e) 
            {
                String resultauftrag=new String();
                JComboBox selectedChoice = (JComboBox)e.getSource();
                if (selectedChoice.getSelectedItem().equals("Tool schliessen"))
                System.exit(0);
                else if (selectedChoice.getSelectedItem().equals("Kundenaufträge"))
                try
                {
                    Statement auftrag = connection.createStatement(); 
                    resultauftrag = "SELECT customerid, AUF001, AUF012, AUF004, AUF015, AUF016, AUF020 FROM Auftrag WHERE customerid in (SELECT customerid FROM customer)"; 
                    ResultSet rs = auftrag.executeQuery(resultauftrag); 
                                
                    java.util.List customerid= new ArrayList();
                    java.util.List auf001 = new ArrayList(); 
                    java.util.List auf012 = new ArrayList();
                    java.util.List auf004 = new ArrayList(); 
                    java.util.List auf015 = new ArrayList();
                    java.util.List auf016 = new ArrayList(); 
                    java.util.List auf020 = new ArrayList();
            
                    while (rs.next()) 
                    { 
                        customerid.add(rs.getString(1));
                        auf001.add(rs.getString(2)); 
                        auf012.add(rs.getString(3)); 
                        auf004.add(rs.getString(4)); 
                        auf015.add(rs.getString(5));
                        auf016.add(rs.getString(6)); 
                        auf020.add(rs.getString(7));
                    } 
                    Map map = new HashMap(); 
                    map.put("CustomerID", customerid);
                    map.put("Auftragsnummer", auf001); 
                    map.put("Kommissionsnummer", auf012); 
                    map.put("Gedruckt am", auf004); 
                    map.put("Umsatzwert", auf015); 
                    map.put("WE", auf016); 
                    map.put("Zustand", auf020); 

                    java.util.List listcustomerid = (java.util.List) map.get("CustomerID"); 
                    java.util.List listauf001 = (java.util.List) map.get("Auftragsnummer"); 
                    java.util.List listauf012 = (java.util.List) map.get("Kommissionsnummer"); 
                    java.util.List listauf004 = (java.util.List) map.get("Gedruckt am"); 
                    java.util.List listauf015 = (java.util.List) map.get("Umsatzwert"); 
                    java.util.List listauf016 = (java.util.List) map.get("WE"); 
                    java.util.List listauf020 = (java.util.List) map.get("Zustand"); 
                    String outcustomerid;
                    String outlist001; 
                    String outlist012;
                    String outlist004;
                    String outlist015;
                    String outlist016;
                    String outlist020;
                    int len=listauf001.size();
                
                    for (int n=0;n<len;n++) 
                    { 
                        outcustomerid = (String) listcustomerid.get(n);
                        outlist001 = (String) listauf001.get(n); 
                        outlist012 = (String) listauf012.get(n); 
                        outlist004 = (String) listauf004.get(n); 
                        outlist015 = (String) listauf015.get(n); 
                        outlist016 = (String) listauf016.get(n); 
                        outlist020 = (String) listauf020.get(n); 
                    
                        String[][] data = new String[][]
                        { 
                            {outcustomerid, outlist001, outlist012, outlist004, outlist015, outlist016, outlist020} 
                        }; 
       
                        String[] title = new String[]
                        { 
                            "Auftragsnummer", "Kommissionsnummer", "Gedruckt am", "Umsatzwert", "WE", "Zustand" 
                        }; 
                        DefaultTableModel model = new DefaultTableModel (data, title); 
                        JTable table = new JTable(model);
                        getContentPane().add( new JScrollPane( table ), BorderLayout.SOUTH );
                    }
                }
                catch(Exception e2) 
                {    
                    e2.printStackTrace(); 
                }
            }    
        });
    }    
    public static void main(String args[])
    {
        Combo frame = new Combo();
        frame.setDefaultCloseOperation(Combo.EXIT_ON_CLOSE);
        frame.setVisible( true );
        frame.pack();
    }
}
```


----------



## mic_checker (15. Jun 2005)

Wirklich schön ist der Code ja immer noch nicht 

Was willst du machen wenn der User einen Eintrag in der Combo-Box auswählt, was soll da mit dem JTable passiern ?

Übrigens:


> Wenn das Applet gestartet wird...


Verschreiber ?


----------



## Louis2 (15. Jun 2005)

@mic_checker: Wenn eine Sache in der JComboBox ausgewählt wird, (sagen wir mal "Kundenaufträge" wie im Code), dann soll(en):
1. Die Daten mit Hilfe der SQL Abfrage von der DB Tabelle geholt werden
2. Letzendlich die DB Daten in die JTable eingefügt werden (habe erst AraryList benutzt da ich die Anzahl der Zeilen nicht kenne)
3. Die JTable mit Inhalt angezeigt werden. 
--> Klappt auch gut, bzw. er holt sich die Daten aus der DB und fügt sie in die JTable ein, aber immer in der selben Zeile, also überschriebt sie immer und deshalb erscheint die letzte Zeile der DB dort immer, wie kann ich also eine Art Zeilenumbruch in der JTable machen?

4. Die Grösse des Applet soll angepasst werden wenn die JTable erscheint (grösser werden)
5. Kann man denn im Code was rausstreichen? Muss ich über eine ArrayList gehen?


----------



## mic_checker (16. Jun 2005)

Bin ich blind oder warum redest du von einem Applet ?

Wenn du Reihen etc. hinzufügen willst kannst du addRow(..) vom DefaultTableModel aufrufen, aber das steht u.a. in beni's tut.


----------



## Louis2 (16. Jun 2005)

Beni hatte u.a ein zweidimensionales Beispiel und die Daten wurden anhand von
String[][] data = new String[][]
{ 
	{"a", "b", "c", "d"}, 
        {"e", "f", "g", "h"}, 
        {"i", "j", "k", "l"} 
}; 

Es sollte doch eigentlich gehen, dass meine Anweisung
String[][] data = new String[][] 
{ 
	{outcustomerid, outlist001, outlist012, outlist004, outlist015, outlist016, outlist020} 
};

solange durchgeführt wird, wie es Zeilen in der DB Tabelle gibt oder geht das nicht so und ich muss es mit addRow() lösen?


----------



## mic_checker (16. Jun 2005)

Mach es mit addRow(...)


----------



## Louis2 (16. Jun 2005)

mic_checker hat gesagt.:
			
		

> Mach es mit addRow(...)


Ok super es klappt.


----------



## mic_checker (16. Jun 2005)

Was ist mit den andern Punkten ? Sonst noch was nicht so wie es sein sollte ?

Falls alles korrekt funzt , kannst du ja noch deinen endgültigen Source posten, für Leute mit ähnlichen Problemen.


----------



## Louis2 (16. Jun 2005)

Offene Punkte:
- Grösse des Fensters bestimmen, bzw. fixieren
(Wird es dann trotzdem automatisch grösser falls mehr Zeilen eingefügt werden?)
- Was kann man im Code rausstreichen oder schöner darstellen?
(Warst ja nicht so zufrieden )


----------



## mic_checker (16. Jun 2005)

also habs ja gerade schon per pn geschickt:
Größe setzen mit setSize(...) , für das andere setResizable(false)


----------



## Louis2 (17. Jun 2005)

Das Problem mit der Fenstergrösse habe ich immer noch nicht gelöst bekommen, seltsam, das Fenster kann ich gar nicht grösser machen mit setSize(...)  ???:L 

Wenn ich das pack() weglassen kann ich die Grösse des Fensters bestimmen, aber es erscheint im Frame nichts mehr???

Mein Code mit Änderungen:

```
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel; 
import javax.swing.table.TableColumnModel; 
import java.io.*;
import java.sql.*;
import java.util.*;
import java.util.ArrayList;

public class Combo extends JFrame implements WindowListener, ActionListener
{
    private JButton sendButton = new JButton("Send Messages");
    SammelMail mail = new SammelMail(); 
    JComboBox combo = new JComboBox();
    JTable table = new JTable();
    String INIEmailFrom;
    String INIHost;
    BufferedReader b; 
    String line; 
    String[] tmp = null;
    int counter=0;
    String DBServer;
    String DBName;
    String DBUser;
    String DBPassword;
    Connection connection;
        
    public Combo()
    {
        super("Java email client");
        
        Container contentPane = this.getContentPane();
        contentPane.setLayout(new BorderLayout());
        
        JPanel button = new JPanel();
        button.setLayout(new FlowLayout(FlowLayout.LEFT));
        button.add(sendButton);
        contentPane.add(button);
        sendButton.setEnabled(false);
        sendButton.addActionListener(this);
        
        String comboinhalt[] = 
        {
            "Wählen Sie bitte eine Auftragsart", "Kundenaufträge", "lfd. Angebote", "Lieferscheine", "Rechnungen", "Historische Angebote", "Umsatzdaten", "Tool schliessen"
        };
        
        try 
        { 
            File Data = new File("C:/Dokumente und Einstellungen/Lempert/Desktop/Project/Data.ini"); 
            b = new BufferedReader(new InputStreamReader(new FileInputStream(Data)));  
            while ((line = b.readLine()) != null) 
            { 
                tmp = line.split(": ");  
                if (counter==0)
                INIEmailFrom=tmp[1];
                else if (counter==1)
                INIHost=tmp[1]; 
                else if (counter==2)
                DBServer=tmp[1];
                else if (counter==3)
                DBName=tmp[1];
                else if (counter==4)
                DBUser=tmp[1];
                else if (counter==5)
                DBPassword=tmp[1];
                counter++;
            }     
                b.close(); 
        } 
        catch (IOException e) 
        { 
            System.out.println("Error during data reading"); 
        } 
        
        try 
        { 
            String resultauftrag=new String();
            Class.forName("oracle.jdbc.driver.OracleDriver"); 
            //DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());
            String url = "jdbc:oracle:thin:@"+DBServer+":1521:"+DBName; 
            connection = DriverManager.getConnection(url, DBUser, DBPassword);
            connection.setAutoCommit(true);
        }
        catch(ClassNotFoundException e1) 
        { 
            e1.printStackTrace(); 
        } 
        catch(Exception e2) 
        {       
            e2.printStackTrace(); 
        }
        
        String[] title = new String[]
        { 
            "KundenID", "AuftragsNr.", "Komm.Nr.", "Gedruckt am", "Umsatzwert", "WE", "Zustand" 
        }; 
        final DefaultTableModel model = new DefaultTableModel (title,0); 
        table = new JTable(model)
        {
           public boolean isCellEditable(int rowIndex, int vColIndex) 
           {
               return false;
           }
        };
        getContentPane().add(new JScrollPane(table), BorderLayout.SOUTH );
                
        TableColumnModel columnModel = table.getColumnModel(); 
        columnModel.getColumn(0).setPreferredWidth(90); 
        columnModel.getColumn(1).setPreferredWidth(100); 
        columnModel.getColumn(2).setPreferredWidth(100); 
        columnModel.getColumn(3).setPreferredWidth(110); 
        columnModel.getColumn(4).setPreferredWidth(100); 
        columnModel.getColumn(5).setPreferredWidth(45); 
        columnModel.getColumn(6).setPreferredWidth(80); 
        
        table.getTableHeader().setReorderingAllowed(false);
        setResizable(false);

        table.setColumnSelectionAllowed(true);
        table.setRowSelectionAllowed(false);
                        
        for (int i = 0; i < comboinhalt.length; i++)
            combo.addItem(comboinhalt[i]);
            getContentPane().add(combo, BorderLayout.WEST);
            combo.addItemListener(new ItemListener() 
        {
            public void itemStateChanged(ItemEvent e) 
            {
                String resultauftrag=new String();
                
                JComboBox selectedChoice = (JComboBox)e.getSource();
                if (selectedChoice.getSelectedItem().equals("Tool schliessen"))
                System.exit(0);
                else if (selectedChoice.getSelectedItem().equals("Kundenaufträge"))
                try
                {
                    Statement auftrag = connection.createStatement(); 
                    resultauftrag = "SELECT customerid, AUF001, AUF012, AUF004, AUF015, AUF016, AUF020 FROM Auftrag WHERE customerid in (SELECT customerid FROM customer)"; 
                    ResultSet rs = auftrag.executeQuery(resultauftrag); 
                                
                    java.util.List customerid= new ArrayList();
                    java.util.List auf001 = new ArrayList(); 
                    java.util.List auf012 = new ArrayList();
                    java.util.List auf004 = new ArrayList(); 
                    java.util.List auf015 = new ArrayList();
                    java.util.List auf016 = new ArrayList(); 
                    java.util.List auf020 = new ArrayList();
            
                    while (rs.next()) 
                    { 
                        customerid.add(rs.getString(1));
                        auf001.add(rs.getString(2)); 
                        auf012.add(rs.getString(3)); 
                        auf004.add(rs.getString(4)); 
                        auf015.add(rs.getString(5));
                        auf016.add(rs.getString(6)); 
                        auf020.add(rs.getString(7));
                    } 
                    Map map = new HashMap(); 
                    map.put("CustomerID", customerid);
                    map.put("Auftragsnummer", auf001); 
                    map.put("Kommissionsnummer", auf012); 
                    map.put("Gedruckt am", auf004); 
                    map.put("Umsatzwert", auf015); 
                    map.put("WE", auf016); 
                    map.put("Zustand", auf020); 

                    java.util.List listcustomerid = (java.util.List) map.get("CustomerID"); 
                    java.util.List listauf001 = (java.util.List) map.get("Auftragsnummer"); 
                    java.util.List listauf012 = (java.util.List) map.get("Kommissionsnummer"); 
                    java.util.List listauf004 = (java.util.List) map.get("Gedruckt am"); 
                    java.util.List listauf015 = (java.util.List) map.get("Umsatzwert"); 
                    java.util.List listauf016 = (java.util.List) map.get("WE"); 
                    java.util.List listauf020 = (java.util.List) map.get("Zustand"); 
                    String outcustomerid;
                    String outlist001; 
                    String outlist012;
                    String outlist004;
                    String outlist015;
                    String outlist016;
                    String outlist020;
                    int len=listauf001.size();
                    int count=model.getRowCount();
                    for (int o=0;o<count;o++)
                    {
                        model.removeRow(0);
                    }
                    for (int n=0;n<len;n++) 
                    { 
                        outcustomerid = (String) listcustomerid.get(n);
                        outlist001 = (String) listauf001.get(n); 
                        outlist012 = (String) listauf012.get(n); 
                        outlist004 = (String) listauf004.get(n); 
                        outlist015 = (String) listauf015.get(n); 
                        outlist016 = (String) listauf016.get(n); 
                        outlist020 = (String) listauf020.get(n); 
                    
                        model.addRow(new String[] {outcustomerid, outlist001, outlist012, outlist004, outlist015, outlist016, outlist020}); 
                    }
                    sendButton.setEnabled(true);
                }
                catch(Exception e2) 
                {    
                    e2.printStackTrace(); 
                }
            }    
        });
    }    
    public static void main(String args[])
    {
        Combo frame = new Combo();
        frame.setDefaultCloseOperation(Combo.EXIT_ON_CLOSE);
        frame.setVisible(true);
        frame.pack();
    }
    
    public void actionPerformed(ActionEvent e) 
    {
        if (e.getSource() == sendButton) 
        { 
            SammelMail message = new SammelMail(); 
            int[] selectedRows = table.getSelectedRows();
            int[] selectedColumns = table.getSelectedColumns();
                	    
            for (int x=0; x<=table.getRowCount()-1;x++)
            {
                for (int y=0; y<=selectedColumns.length-1;y++)
                {
                    Object yourValue = table.getModel().getValueAt(x, selectedColumns[y]); 
                    //message.append(yourValue + "\n");
                    
                }
            }
            mail.show(); 
        } 
    }
    public void windowClosing(WindowEvent e) 
    {
        System.exit(0); 
    }
    public void windowActivated(WindowEvent e) {
    }    
    public void windowClosed(WindowEvent e) {
    }
    public void windowDeactivated(WindowEvent e) {
    }
    public void windowDeiconified(WindowEvent e) {
    }
    public void windowIconified(WindowEvent e) {
    }
    public void windowOpened(WindowEvent e) {
    }
}
```


----------

