Hallo,
ich bin blutiger Java-Anfänger und stehe vor schon vor einem großen Problem.
Ich habe mit Hilfe von Netbeans eine kleine Swing Gui gemacht der Daten einer mysql DB in einem Jtable ausgibt.
Mein Problem ist: ich möchte gerne checkboxen selektieren und anschließend nur ausgewählte Dantensätze ausdrucken.
Die ersten vier Spalten im Jtable sind Objekte, column 5 ist ein Boolean (für die checkboxen). Somit werden mir zumindest die checkboxen ausgegeben und ich kann diese selektieren.
Mein Problem ist nur, wie Frage ich ab, welche checkboxen gewählt wurden und wie kann ich diese anschließend ausdrucken.
So sieht der Search Button aus
und über Button Drucken wird das Jtable ausgedruckt (nur eben komplett und nicht nur ausgewählte Sätze)
Hoffe das war einigermaßen verständlich geschrieben... bin halt echt ein totaler Anfänger.
Ich bin für jede Hilfe Dankbar
ich bin blutiger Java-Anfänger und stehe vor schon vor einem großen Problem.
Ich habe mit Hilfe von Netbeans eine kleine Swing Gui gemacht der Daten einer mysql DB in einem Jtable ausgibt.
Mein Problem ist: ich möchte gerne checkboxen selektieren und anschließend nur ausgewählte Dantensätze ausdrucken.
Die ersten vier Spalten im Jtable sind Objekte, column 5 ist ein Boolean (für die checkboxen). Somit werden mir zumindest die checkboxen ausgegeben und ich kann diese selektieren.
Mein Problem ist nur, wie Frage ich ab, welche checkboxen gewählt wurden und wie kann ich diese anschließend ausdrucken.
So sieht der Search Button aus
Java:
private void searchActionPerformed(java.awt.event.ActionEvent evt) {
DefaultTableModel model=(DefaultTableModel) jTable1.getModel();
// Textfeld auslesen
String searchBand=band.getText();
String searchSong=song.getText();
String searchJahr=jahr.getText();
//Tabelle leer machen
model.setRowCount(0);
try {
// ComboBox auslesen
Object combo = jComboBox1.getSelectedItem();
// ausgelesenes Object in String wandeln
String auswahl = combo.toString();
// SQL select mit order by ComboBox
String sql="Select * from library where Band like '%"+searchBand+"%' and Song like '%"+searchSong+"%' and Jahr like '%"+searchJahr+"%' order by "+auswahl+"";
//Datenbank Connect
Class.forName("com.mysql.jdbc.Driver");
Connection con= (Connection)
DriverManager.getConnection(this.url,this.user,this.pass);
//
//ab hier absetzen des Selects und Ausgabe der Abfrage
Statement stmt=con.createStatement();
ResultSet rs = stmt.executeQuery(sql);
Integer count = 0;
while (rs.next())
{
String id = rs.getString("ID");
String bandField = rs.getString("Band");
String songField = rs.getString("Song");
String jahrField = rs.getString("Jahr");
count = count + 1;
model.addRow(new Object []{id,bandField,songField,jahrField});
}
//gezählte Sätze ausgeben
selection.setText(" "+count+" Zeile(n) ausgewählt");
//Fortschrittsbalken setzen
jProgressBar1.setValue(100);
}
catch(ClassNotFoundException | SQLException e) {
JOptionPane.showMessageDialog(this, e.getMessage());
}
}
private void updateActionPerformed(java.awt.event.ActionEvent evt) {
DefaultTableModel model=(DefaultTableModel) jTable1.getModel();
selection.setText("");
//Zeile in Tabelle auslesen
int row = jTable1.getSelectedRow();
//ID in der DB auslesen, wichtig für update
String rowID = jTable1.getModel().getValueAt(row, 0).toString();
String sql = "update library set Band = ?, Song = ?, Jahr = ? where ID = "+rowID+"";
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con= (Connection)
DriverManager.getConnection(this.url,this.user,this.pass);
PreparedStatement pst = con.prepareStatement(sql);
pst.setString(1, band.getText());
pst.setString(2, song.getText());
pst.setString(3, jahr.getText());
pst.executeUpdate();
//Felder leeren
band.setText("");
song.setText("");
jahr.setText("");
JOptionPane.showMessageDialog(null, "Update erfolgreich");
}
catch (ClassNotFoundException | SQLException | HeadlessException e){
JOptionPane.showMessageDialog(null, e);
}
}
und über Button Drucken wird das Jtable ausgedruckt (nur eben komplett und nicht nur ausgewählte Sätze)
Java:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
try {
jTable1.print();
} catch(PrinterException pe) {
JOptionPane.showMessageDialog(null, "Fehler beim Drucken");
}
}
Hoffe das war einigermaßen verständlich geschrieben... bin halt echt ein totaler Anfänger.
Ich bin für jede Hilfe Dankbar