Tabellenmethode auslagern

Status
Nicht offen für weitere Antworten.
Hallo, ich mal wieder. :p

Also neues, folgendes Problem.

Code:
der ganze Import Kram

public class MyFrame extends JFrame implements ActionListener {
	
	private ....

	public static void main(String args[])  {
		MyFrame g = new MyFrame();
	}

	public void actionPerformed(ActionEvent e) {
		 if(e.getActionCommand().equals("Auswählen")) //Auswählen-Button
	     {
	    	 abfrageFeld = "ID";
	    	 abfrageWert = "2";
 			 try {
				dbout();
			} catch (SQLException e1) {
				e1.printStackTrace();
			} catch (ClassNotFoundException e1) {
				e1.printStackTrace();
			}
	     }
	 }

	public List<Kunde> dbout() throws java.sql.SQLException, ClassNotFoundException {
		// Treiber laden
		Class.forName("com.mysql.jdbc.Driver");

		// Connection herstellen
		String dbHost = "jdbc:mysql://192.168.0.51/fabian_autopark";
		String dbUser = "root";
		String dbPass = "";

		Connection conn = DriverManager.getConnection(dbHost, dbUser, dbPass);

		// Statement erzeugen
		Statement stmt = conn.createStatement();
		// dbout(stmt)
		// Connection schließen
		//conn.close();
		
//		abfrageFeld = "ID";
//		abfrageWert = "2";
		
		// SQL-Abfragen losschicken
		abfrageK1 = "SELECT * FROM kunde WHERE " + abfrageFeld + " = '" + abfrageWert + "'";
		System.out.println("SELECT-Anweisung: " + abfrageK1);

		// Resultset entgegennehmen
		ResultSet resultK1 = stmt.executeQuery(abfrageK1);
		
		ArrayList<Kunde> list = new ArrayList<Kunde>();
		
		while(resultK1.next()) {
			Kunde k1 = new Kunde();
			k1.setNachname(resultK1.getString("kunde.nachname"));
			k1.setVorname(resultK1.getString("kunde.vorname"));
			list.add(k1);
		}
		System.out.println(list);
		return list;
	}

	public createTable() {
		
	}
	
	public MyFrame()  {
		super("Juchu - Ich habe ein Fenster");
		try {
		
		setSize(300, 500);
		setLocation(300, 300);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		getContentPane().setLayout(new BorderLayout(5, 5));

		List<Kunde> kundeList = dbout();

		// Tabelle erzeugen
		Object[][] table = new Object[kundeList.size()][2];

		int i=0;
		System.out.println("int i=" + i);
		for (Kunde k1:kundeList) {
			Object[] kundeRow = new Object[2];
			kundeRow[0] = k1.getVorname();
			kundeRow[1] = k1.getNachname();
			table[i] = kundeRow;
			i++;
		}

		String[] spaltenNamen = { "Vorname", "Nachname" };
		tabelle = new JTable(table, spaltenNamen);
		tabelle.setPreferredScrollableViewportSize(new Dimension(400, 60));

		// Panels erzeugen
		tablePanel = new JPanel(new GridLayout(2, 1));
	    northPanel = new JPanel(new GridLayout());
	    centerPanel = new JPanel(new GridLayout (9,3,2,2));

		// Button erzeugen
	    button1 = new JButton("Hinzufügen");
            ...

		// Leerfeld erzeugen
	    leerfeld2 = new JLabel("  ");
            ...
	    labelDB = new JLabel("Datenbankabfrage");
	    labelVorname = new JLabel("Vorname");
	    labelNachname = new JLabel("Nachname");
	    
	    // Textfelder erzeugen
	    ausgabefeld1 = new JTextField("");
            ...

		// auf Panel Button packen
		tablePanel.add(tabelle.getTableHeader());
		tablePanel.add(tabelle);

	    setDefaultCloseOperation(EXIT_ON_CLOSE);
	    setSize(450, 150);
	    Container cp = getContentPane();
	    cp.setLayout(new BorderLayout());
	    
	    cp.add(northPanel, BorderLayout.NORTH);

	    cp.add(centerPanel, BorderLayout.CENTER);

	    labelDB.setHorizontalAlignment(SwingConstants.CENTER);
	    northPanel.add(labelDB);

	    centerPanel.add (labelVorname);
	    labelVorname.setHorizontalAlignment(SwingConstants.RIGHT);
	    
	    centerPanel.add (ausgabefeld1);
	    ausgabefeld1.setHorizontalAlignment(SwingConstants.LEFT);

	    centerPanel.add (button1);
	    button1.setHorizontalAlignment(SwingConstants.CENTER);

	    centerPanel.add (labelNachname);
	    labelNachname.setHorizontalAlignment(SwingConstants.RIGHT);
	    
	    centerPanel.add (button2);
	    button2.setHorizontalAlignment(SwingConstants.CENTER);

	    centerPanel.add (button3);
	    button3.setHorizontalAlignment(SwingConstants.CENTER);

            centerPanel.add (button4);
	    button4.setHorizontalAlignment(SwingConstants.CENTER);
	    
	    centerPanel.add (leerfeld2);

	    cp.add (tablePanel, BorderLayout.SOUTH);
		
		pack();
		setVisible(true);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}


}

Das Problem ist nun, dass bei einem Klick auf "auswählen" eigentlich die SELECT-Anweisung angepasst wird. Das tut sie auch. Aber die Tabelle soll gleichzeitig auch erscheinen.

Bisher klappt das nicht. Hatte jetzt gedacht eine extra Methode à la

Code:
public createTable()

zu schreiben. Nur leider bin ich mir nicht sicher, was ich dort alles reinstecken muss. Irgendwie stehe ich gerade auf einem C-Schlauch
 

André Uhres

Top Contributor
Code:
...
public class MyFrame extends JFrame implements ActionListener {
...
    public void actionPerformed(ActionEvent e) {
        if(e.getActionCommand().equals("Auswählen")) //Auswählen-Button
        {
            abfrageFeld = "ID";
            abfrageWert = "2";
            try {
                List<Kunde> kundeList = dbout();//<------------------------
                createTable(kundeList);//<----------------------------
            } catch (SQLException e1) {
                e1.printStackTrace();
            } catch (ClassNotFoundException e1) {
                e1.printStackTrace();
            }
        }
    }
...
    public void createTable(List<Kunde> kundeList) {//<-----------------------------
        Object[][] table = new Object[kundeList.size()][2];
        
        int i=0;
        System.out.println("int i=" + i);
        for (Kunde k1:kundeList) {
            Object[] kundeRow = new Object[2];
            kundeRow[0] = k1.getVorname();
            kundeRow[1] = k1.getNachname();
            table[i] = kundeRow;
            i++;
        }
        
        String[] spaltenNamen = { "Vorname", "Nachname" };
        tabelle.setModel(new DefaultTableModel(table, spaltenNamen));
        
    }
    
    public MyFrame()  {
        super("Juchu - Ich habe ein Fenster");
        try {
            
            setSize(300, 500);
            setLocation(300, 300);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            getContentPane().setLayout(new BorderLayout(5, 5));
            
            List<Kunde> kundeList = dbout();
            
            // Tabelle erzeugen//<----------------
            tabelle = new JTable();//<--------------------------
            createTable(kundeList);//<-------------------------------
            tabelle.setPreferredScrollableViewportSize(new Dimension(400, 60));
...
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Hartgecodete Daten auslagern Allgemeine Java-Themen 4
F Code auslagern Allgemeine Java-Themen 5
M Methoden Operation auslagern und "nebenbei" laufen lassen Allgemeine Java-Themen 3
M Redundante Zustandsprüfungen auslagern Allgemeine Java-Themen 8
M Methoden Methode Auslagern Allgemeine Java-Themen 6
L Arbeitsspeicher auf Festplatte auslagern Allgemeine Java-Themen 36
P Code in Methode auslagern möglich? Allgemeine Java-Themen 9
C KeyListener auslagern - Wie? Allgemeine Java-Themen 3
C Informationen in eine Datei auslagern Allgemeine Java-Themen 19
N Wie Listenabgleich auf zwei CPU Cores auslagern? Allgemeine Java-Themen 6
B Daten effizient ein- und auslagern Allgemeine Java-Themen 7
A Wie am besten Daten auslagern um heap zu schonen Allgemeine Java-Themen 4
H Layout auslagern, aber wie genau??? Allgemeine Java-Themen 11
G Frage zu Programmierstil: Auslagern von Kostanten Allgemeine Java-Themen 8
byte Annotations: Arrays auslagern Allgemeine Java-Themen 2
DeeDee0815 Resourcen in JARs auslagern Allgemeine Java-Themen 4
G SQL Anfragen auslagern+Transaktionen Allgemeine Java-Themen 17
N Methoden in eigene Dateien auslagern? Allgemeine Java-Themen 10
S grafische Oberfläche-> auslagern innerer klassen Allgemeine Java-Themen 5
K AUf den USB Stick auslagern Allgemeine Java-Themen 15
C RAM Speicher in Datei auslagern (Java Swapping) Allgemeine Java-Themen 4
H Methoden in andere Files auslagern Allgemeine Java-Themen 6
A menüeinträge im Java Menü auslagern Allgemeine Java-Themen 9

Ähnliche Java Themen

Neue Themen


Oben