Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package GFI4;
- import java.awt.BorderLayout;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.GridLayout;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.Statement;
- import javax.swing.*;
- import javax.swing.table.DefaultTableModel;
- public class MainFrame extends JFrame
- {
- public Personenverwaltung PV;
- DefaultTableModel tableModel;
- JTable table;
- public MainFrame(String title)
- {
- super(title);
- this.PV = new Personenverwaltung();
- //set layout manager
- setLayout(new BorderLayout());
- //create swing components
- //table model
- String[] spaltenNamen = {"ID", "Last name", "First name", "Income"};
- this.tableModel = new DefaultTableModel(spaltenNamen, 0);
- this.table = new JTable(tableModel);
- fillTable();
- //button zum erstellen neuer personen
- JButton buttonPerson = new JButton("Add person");
- //Consolenausgabe
- //PV.personenAusgabe();
- //buttonfunktion
- buttonPerson.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- JFrame test = new JFrame();
- test.setSize(600,150);
- test.setVisible(true);
- GridLayout formularGrid = new GridLayout(4,2);
- test.setLayout(formularGrid);
- JLabel testLabel1 = new JLabel("Bitte geben Sie den Vornamen der Person ein:");
- JTextField vornameField = new JTextField();
- JLabel testLabel2 = new JLabel("Bitte geben Sie den Nachnamen der Person ein:");
- JTextField nachnameField = new JTextField();
- JLabel testLabel3 = new JLabel("Bitte geben Sie das Gehalt der Person ein:");
- JTextField gehaltField = new JTextField();
- JButton abschickButton = new JButton("Abschicken!");
- test.add(testLabel1);
- test.add(vornameField);
- test.add(testLabel2);
- test.add(nachnameField);
- test.add(testLabel3);
- test.add(gehaltField);
- test.add(abschickButton, BorderLayout.SOUTH);
- //buttonfunktion des abschick buttons
- abschickButton.addActionListener (new ActionListener()
- {
- String vorname;
- String nachname;
- int gehalt;
- public void actionPerformed (ActionEvent e)
- {
- vorname = (vornameField.getText());
- nachname = (nachnameField.getText());
- gehalt = Integer.parseInt(gehaltField.getText());
- try
- {
- //1. connection db
- String connectionURL = "jdbc:mysql://localhost:3306/gfiv2?autoReconnect=true&useSSL=false";
- Connection myConn = DriverManager.getConnection(connectionURL, "root", "JoRo1997");
- //2. statement
- Statement myStat = myConn.createStatement();
- //3. sql query
- ResultSet myRs = myStat.executeQuery("select * from Person order by Nachname DESC");
- int x = 0;
- while(myRs.next())
- {
- x = (myRs.getInt("person_id"));
- }
- //ruft die methode auf und legt den datensatz in sql an
- neuePersonInSQL(vorname, nachname, gehalt);
- //ruft die methode auf fügt den datensatz manuell der jtable hinzu
- letztenDatensatzInTable(x-68, vorname, nachname, gehalt);
- //schließt frame
- test.dispose();
- }
- catch (Exception exc)
- {
- exc.printStackTrace();
- }
- }
- });
- }
- });
- //add swing components to content pane
- Container c = getContentPane();
- c.add(table.getTableHeader(), BorderLayout.PAGE_START);
- c.add(table, BorderLayout.CENTER);
- c.add(buttonPerson, BorderLayout.SOUTH);
- }
- //füllt die jtable mit den sql datensätzen
- public void fillTable()
- {
- //leert die tabelle vor dem aufruf
- while (tableModel.getRowCount()>0)
- {
- tableModel.removeRow(0);
- }
- //Erstellung von Personenobjekten mit den Daten aus der SQL Datenbank
- try{
- //1. connection db
- String connectionURL = "jdbc:mysql://localhost:3306/gfiv2?autoReconnect=true&useSSL=false";
- Connection myConn = DriverManager.getConnection(connectionURL, "root", "JoRo1997");
- //2. statement
- Statement myStat = myConn.createStatement();
- //3. sql query
- ResultSet myRs = myStat.executeQuery("select * from Person order by person_id ASC");
- //4. procces
- while(myRs.next())
- {
- Person p = new Person((myRs.getInt("person_id")),(myRs.getString("Nachname")), (myRs.getString("Vorname")), (myRs.getInt("gehalt")));
- this.PV.addPerson(p);
- }
- myConn.close();
- }
- catch (Exception exc)
- {
- exc.printStackTrace();
- }
- //ArrayList in Tabelle
- for(Person p : this.PV.getPerson())
- {
- Object[] objs = {'"'+p.getID()-68+'"','"'+p.getName()+'"', '"'+p.getVorname()+'"', '"'+p.getGehalt()-68+'"'};
- this.tableModel.addRow(objs);
- }
- }
- //fügt letzten datensatz der jtable hinzu
- public void letztenDatensatzInTable(int id, String vorname, String nachname, int gehalt)
- {
- Person y = new Person(id, vorname, nachname, gehalt);
- PV.addPerson(y);
- int x = (PV.getPerson().size()-1);
- Person p = PV.getPerson().get(x);
- Object[] objs = {'"'+p.getID()+'"','"'+p.getName()+'"', '"'+p.getVorname()+'"', '"'+p.getGehalt()-68+'"'};
- this.tableModel.addRow(objs);
- }
- //fügt letzten datensatz in der sql datenbank hinzu
- public void neuePersonInSQL(String vorname, String nachname, int gehalt)
- {
- try{
- //1. connection db
- String connectionURL = "jdbc:mysql://localhost:3306/gfiv2?autoReconnect=true&useSSL=false";
- Connection myConn = DriverManager.getConnection(connectionURL, "root", "JoRo1997");
- //2. statement
- Statement myStat = myConn.createStatement();
- //3. sql query
- String insert = "insert into person(vorname, nachname, gehalt)values('"+vorname+"','"+nachname+"', "+gehalt+");";
- myStat.executeUpdate(insert);
- }
- catch (Exception exc)
- {
- exc.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement