Advertisement
Guest User

Untitled

a guest
Feb 13th, 2016
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.27 KB | None | 0 0
  1. package GFI4;
  2. import java.awt.BorderLayout;
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Container;
  6. import java.awt.GridLayout;
  7. import java.awt.event.ActionEvent;
  8. import java.awt.event.ActionListener;
  9. import java.sql.Connection;
  10. import java.sql.DriverManager;
  11. import java.sql.ResultSet;
  12. import java.sql.Statement;
  13.  
  14. import javax.swing.*;
  15. import javax.swing.table.DefaultTableModel;
  16.  
  17. public class MainFrame extends JFrame
  18. {
  19. public Personenverwaltung PV;
  20. DefaultTableModel tableModel;
  21. JTable table;
  22.  
  23. public MainFrame(String title)
  24. {
  25. super(title);
  26. this.PV = new Personenverwaltung();
  27.  
  28. //set layout manager
  29. setLayout(new BorderLayout());
  30.  
  31. //create swing components
  32. //table model
  33. String[] spaltenNamen = {"ID", "Last name", "First name", "Income"};
  34. this.tableModel = new DefaultTableModel(spaltenNamen, 0);
  35. this.table = new JTable(tableModel);
  36. fillTable();
  37.  
  38. //button zum erstellen neuer personen
  39. JButton buttonPerson = new JButton("Add person");
  40.  
  41. //Consolenausgabe
  42. //PV.personenAusgabe();
  43.  
  44. //buttonfunktion
  45. buttonPerson.addActionListener(new ActionListener()
  46. {
  47. public void actionPerformed(ActionEvent e)
  48. {
  49. JFrame test = new JFrame();
  50. test.setSize(600,150);
  51. test.setVisible(true);
  52. GridLayout formularGrid = new GridLayout(4,2);
  53. test.setLayout(formularGrid);
  54.  
  55. JLabel testLabel1 = new JLabel("Bitte geben Sie den Vornamen der Person ein:");
  56. JTextField vornameField = new JTextField();
  57. JLabel testLabel2 = new JLabel("Bitte geben Sie den Nachnamen der Person ein:");
  58. JTextField nachnameField = new JTextField();
  59. JLabel testLabel3 = new JLabel("Bitte geben Sie das Gehalt der Person ein:");
  60. JTextField gehaltField = new JTextField();
  61.  
  62. JButton abschickButton = new JButton("Abschicken!");
  63. test.add(testLabel1);
  64. test.add(vornameField);
  65. test.add(testLabel2);
  66. test.add(nachnameField);
  67. test.add(testLabel3);
  68. test.add(gehaltField);
  69. test.add(abschickButton, BorderLayout.SOUTH);
  70.  
  71. //buttonfunktion des abschick buttons
  72. abschickButton.addActionListener (new ActionListener()
  73. {
  74. String vorname;
  75. String nachname;
  76. int gehalt;
  77. public void actionPerformed (ActionEvent e)
  78. {
  79. vorname = (vornameField.getText());
  80. nachname = (nachnameField.getText());
  81. gehalt = Integer.parseInt(gehaltField.getText());
  82.  
  83. try
  84. {
  85. //1. connection db
  86. String connectionURL = "jdbc:mysql://localhost:3306/gfiv2?autoReconnect=true&useSSL=false";
  87. Connection myConn = DriverManager.getConnection(connectionURL, "root", "JoRo1997");
  88. //2. statement
  89. Statement myStat = myConn.createStatement();
  90. //3. sql query
  91. ResultSet myRs = myStat.executeQuery("select * from Person order by Nachname DESC");
  92. int x = 0;
  93. while(myRs.next())
  94. {
  95. x = (myRs.getInt("person_id"));
  96. }
  97. //ruft die methode auf und legt den datensatz in sql an
  98. neuePersonInSQL(vorname, nachname, gehalt);
  99.  
  100. //ruft die methode auf fügt den datensatz manuell der jtable hinzu
  101. letztenDatensatzInTable(x-68, vorname, nachname, gehalt);
  102. //schließt frame
  103. test.dispose();
  104. }
  105. catch (Exception exc)
  106. {
  107. exc.printStackTrace();
  108. }
  109. }
  110. });
  111. }
  112. });
  113.  
  114. //add swing components to content pane
  115. Container c = getContentPane();
  116. c.add(table.getTableHeader(), BorderLayout.PAGE_START);
  117. c.add(table, BorderLayout.CENTER);
  118. c.add(buttonPerson, BorderLayout.SOUTH);
  119. }
  120.  
  121. //füllt die jtable mit den sql datensätzen
  122. public void fillTable()
  123. {
  124. //leert die tabelle vor dem aufruf
  125. while (tableModel.getRowCount()>0)
  126. {
  127. tableModel.removeRow(0);
  128. }
  129. //Erstellung von Personenobjekten mit den Daten aus der SQL Datenbank
  130. try{
  131. //1. connection db
  132. String connectionURL = "jdbc:mysql://localhost:3306/gfiv2?autoReconnect=true&useSSL=false";
  133. Connection myConn = DriverManager.getConnection(connectionURL, "root", "JoRo1997");
  134. //2. statement
  135. Statement myStat = myConn.createStatement();
  136. //3. sql query
  137. ResultSet myRs = myStat.executeQuery("select * from Person order by person_id ASC");
  138. //4. procces
  139. while(myRs.next())
  140. {
  141. Person p = new Person((myRs.getInt("person_id")),(myRs.getString("Nachname")), (myRs.getString("Vorname")), (myRs.getInt("gehalt")));
  142. this.PV.addPerson(p);
  143. }
  144. myConn.close();
  145. }
  146. catch (Exception exc)
  147. {
  148. exc.printStackTrace();
  149. }
  150.  
  151. //ArrayList in Tabelle
  152. for(Person p : this.PV.getPerson())
  153. {
  154. Object[] objs = {'"'+p.getID()-68+'"','"'+p.getName()+'"', '"'+p.getVorname()+'"', '"'+p.getGehalt()-68+'"'};
  155. this.tableModel.addRow(objs);
  156. }
  157. }
  158. //fügt letzten datensatz der jtable hinzu
  159. public void letztenDatensatzInTable(int id, String vorname, String nachname, int gehalt)
  160. {
  161. Person y = new Person(id, vorname, nachname, gehalt);
  162. PV.addPerson(y);
  163. int x = (PV.getPerson().size()-1);
  164. Person p = PV.getPerson().get(x);
  165. Object[] objs = {'"'+p.getID()+'"','"'+p.getName()+'"', '"'+p.getVorname()+'"', '"'+p.getGehalt()-68+'"'};
  166. this.tableModel.addRow(objs);
  167. }
  168. //fügt letzten datensatz in der sql datenbank hinzu
  169. public void neuePersonInSQL(String vorname, String nachname, int gehalt)
  170. {
  171. try{
  172. //1. connection db
  173. String connectionURL = "jdbc:mysql://localhost:3306/gfiv2?autoReconnect=true&useSSL=false";
  174. Connection myConn = DriverManager.getConnection(connectionURL, "root", "JoRo1997");
  175. //2. statement
  176. Statement myStat = myConn.createStatement();
  177. //3. sql query
  178. String insert = "insert into person(vorname, nachname, gehalt)values('"+vorname+"','"+nachname+"', "+gehalt+");";
  179. myStat.executeUpdate(insert);
  180. }
  181. catch (Exception exc)
  182. {
  183. exc.printStackTrace();
  184. }
  185. }
  186. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement