L
Louis2
Gast
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:
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:
Code:
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 );
}
}