package Test_sql;
import datenbank.SQL_GUI_Connection_personalie;
import java.awt.EventQueue;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.JScrollPane;
import javax.swing.RowFilter;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableRowSorter;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Test_Daten_hinzufügen extends JFrame {
/**
* Launch the application
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
Test_Daten_hinzufügen frame = null;
try {
frame = new Test_Daten_hinzufügen();
} catch (SQLException e) {
e.printStackTrace();
}
frame.setVisible(true); // Frame sichtbar
}
});
}
/**
* Create the Frame
*/
public Test_Daten_hinzufügen() throws SQLException {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Run beenden
setBounds(100, 100, 580, 242 ); // Frame größe
setTitle("Tutorial-Beispiel"); // Frame Überschrift
getContentPane().setLayout(null);
/**
* Scrollpane
*/
JScrollPane scrollPane = new JScrollPane(); // ScrollPane erstellt
scrollPane.setBounds(64, 44, 440, 89); // Größe Scrollpane
getContentPane().add(scrollPane); // Scrollpane dem getContentpane hinzugefügt
/**
* Table
*/
JTable table = new JTable(); // Table erstellt
scrollPane.setViewportView(table); // scrollpane dem table (tabelle) hinzugefügt
/**
* Model für Table
*/
DefaultTableModel model = (DefaultTableModel)table.getModel(); // Model erstellt
model.addColumn("ID"); // Überschrift Table (tabelle-spalten)
model.addColumn("Firstname"); // Überschrift table (tabelle-spalten)
model.addColumn("Lastname"); // Überschrift table (tabelle-spalten)
model.addColumn("Sport"); // Überschrift table (tabelle-spalten)
model.addColumn("# of years"); // Überschrift table (tabelle-spalten)
model.addColumn("vegetarian"); // Überschrift table (tabelle-spalten)
JLabel lblFilter = new JLabel("Filter :"); // label erstellt
lblFilter.setBounds(158, 147, 72, 14); // Label Größe
getContentPane().add(lblFilter); // label dem getContentPane zugeordnet
/**
* Filter
*/
final JTextField txtFilter = new JTextField(); // Textfield erstellt
txtFilter.setBounds(197, 144, 129, 20); // Textfield erstellt
getContentPane().add(txtFilter); // Textfielf dem GetContentpane zugeordnet
/**
* Header Sort
*/
final TableRowSorter<DefaultTableModel> sorter = new TableRowSorter<DefaultTableModel>(model);
table.setRowSorter(sorter);
/**
* Filter-Button (OK-Button)
*/
JButton btnOK = new JButton("OK"); // button erstellt, Button-Schrift="OK"
btnOK.addActionListener(new ActionListener() { // Befehl, click auf button hinzugefügt
@Override //
public void actionPerformed(ActionEvent actionEvent) { //
String expr = txtFilter.getText(); // String expr = textfield (bekommt text von dort)
sorter.setRowFilter(RowFilter.regexFilter(expr)); //
sorter.setSortKeys(null); //
}
});
btnOK.setBounds(336, 144, 59, 23); // Button Größe
getContentPane().add(btnOK); // Button dem getContnetPane zugeordnet
/**
* *********************************************************************************************************************
*/
JButton btnadd = new JButton("Zeile hinzufügen");
btnadd.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
model.addRow(); // IST DIESER ANSATZ RICHTIG???
}
});
btnadd.setBounds(197, 180, 129, 23 );
getContentPane().add(btnadd);
/**
* *********************************************************************************************************************
*/
Connection connect = null;
Statement s = null;
try {
Class.forName("com.mysql.cj.jdbc.Driver"); // SQL Treiber
connect = DriverManager.getConnection("jdbc:mysql://localhost/test","till","Tillerni02"); // Connection zur Datenbank (Pfad + nutzername + passwort der Datenbank)
s = connect.createStatement();
String sql = "SELECT * FROM personalie ORDER BY ID"; // Auswahl Tabelle, Anzeigekriterien
ResultSet rec = s.executeQuery(sql);
int row = 0;
while ((rec!=null) && (rec.next()))
{
model.addRow(new Object[0]);
model.setValueAt(rec.getString("ID"), row, 0); // spalten-name der SQL-Tabelle (muss richtig sein, sonst Fehler)
model.setValueAt(rec.getString("Firstname"), row, 1); // spalten-name der SQL-Tabelle (muss richtig sein, sonst Fehler)
model.setValueAt(rec.getString("Lastname"), row, 2); // spalten-name der SQL-Tabelle (muss richtig sein, sonst Fehler)
model.setValueAt(rec.getString("Sport"), row, 3); // spalten-name der SQL-Tabelle (muss richtig sein, sonst Fehler)
model.setValueAt(rec.getFloat("# of years"), row, 4); // spalten-name der SQL-Tabelle (muss richtig sein, sonst Fehler)
model.setValueAt(rec.getString("vegetarian"), row, 5); // spalten-name der SQL-Tabelle (muss richtig sein, sonst Fehler)
row++;
}
rec.close();
} catch (Exception e) {
// TODO Auto-generated catch block
JOptionPane.showMessageDialog(null, e.getMessage());
e.printStackTrace();
}
try {
if (s != null) {
s.close();
connect.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}