From 83909d59d92abfd5ec4c852f5bb4639004d4d1fd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Paul=20K=C3=B6ster?= <IA21A.Koester.Paul@bk-hennef.de>
Date: Tue, 14 Mar 2023 11:18:04 +0100
Subject: [PATCH] start

---
 .../IDB-Hue-Projekt/Hinzufügen.class          | Bin 5911 -> 5832 bytes
 src/Einzelansicht.java                        |  81 ++++++--------
 src/Hinzufügen.java                           |   3 +-
 src/Suchen.java                               | 103 ++++++++++++++++++
 4 files changed, 136 insertions(+), 51 deletions(-)
 create mode 100644 src/Suchen.java

diff --git a/out/production/IDB-Hue-Projekt/Hinzufügen.class b/out/production/IDB-Hue-Projekt/Hinzufügen.class
index 7f642d820cfb60c15363dd39d7e4f84b4a88e9c1..12b135b4714d2cb2588a3abe5f3e026ec474b584 100644
GIT binary patch
delta 2543
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
Fw*VqEG`Ii&

delta 2651
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
bSe;y}&9mA9t1YCf*^I$6rt&LQjKKc@pd?m6

diff --git a/src/Einzelansicht.java b/src/Einzelansicht.java
index ff069c2..3ef94a8 100644
--- a/src/Einzelansicht.java
+++ b/src/Einzelansicht.java
@@ -1,9 +1,12 @@
 import javax.swing.*;
 import javax.swing.event.*;
 import javax.swing.table.DefaultTableModel;
+import javax.xml.crypto.dsig.keyinfo.KeyName;
 import java.awt.*;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
+import java.awt.event.KeyEvent;
+import java.awt.event.KeyListener;
 import java.sql.*;
 
 public class Einzelansicht extends JFrame implements TableModelListener, ActionListener {
@@ -27,17 +30,15 @@ public class Einzelansicht extends JFrame implements TableModelListener, ActionL
 
     Font font = new Font("Arial", Font.PLAIN, 12);
     String sql = null;
-    String sq = "";
     JMenuBar bar = null;
     JMenu dat = null;
     JMenu bew = null;
     JMenu adm = null;
     JMenuItem i1, i2, i3, i4, i5, i6, i7;
 
-    JTable detail;
-    JScrollPane dsc;
-    int vid=1;
-
+    static JTable detail;
+    static JScrollPane dsc;
+     int vid = 1;
 
 
     public Einzelansicht(String ta) {
@@ -175,9 +176,6 @@ public class Einzelansicht extends JFrame implements TableModelListener, ActionL
         t.addTableModelListener(this);
 
 
-
-
-
     }
 
     public static void einfügen(ResultSet r) {
@@ -208,50 +206,33 @@ public class Einzelansicht extends JFrame implements TableModelListener, ActionL
     }
 
     public void suchen() {
-        s.getDocument().addDocumentListener(new DocumentListener() {
-            @Override
-            public void insertUpdate(DocumentEvent e) {
-                search(s.getText());
-            }
 
+        s.addKeyListener(new KeyListener() {
             @Override
-            public void removeUpdate(DocumentEvent e) {
-                search(s.getText());
-            }
-
-            @Override
-            public void changedUpdate(DocumentEvent e) {
-                search(s.getText());
-            }
-
-            public void search(String st) {
-                if (st.length() == 0) {
-                } else {
+            public void keyTyped(KeyEvent e) {
+                if(e.getKeyChar()==KeyEvent.VK_ENTER){
                     try {
-                        for (int j = 1; j <= rm.getColumnCount(); j++) {
-                            if (j == rm.getColumnCount()) {
-                                sq = sq + rm.getColumnName(j) + " LIKE '%" + st + "%'";
-                            } else {
-                                sq = sq + rm.getColumnName(j) + " LIKE '%" + st + "%' or ";
-                            }
-                        }
-                        sql = "SELECT * FROM " + tab + " WHERE " + sq;
-                        System.out.println(sql);
-                        Connection conn = DriverManager.getConnection(url, "root", "");
-                        Statement s = conn.createStatement();
-                        r = s.executeQuery(sql);
-                        r.first();
+                        r = Suchen.search(s.getText(),r);
+                        s.setText("");
                         einfügen(r);
-                        vid=r.getInt("V_ID");
+                        vid = r.getInt("V_ID");
                         detailtab(vid);
-                        sq = "";
-                        sql = "";
-
-                    } catch (SQLException e) {
-                        throw new RuntimeException(e);
+                    } catch (SQLException ex) {
+                        throw new RuntimeException(ex);
                     }
+
                 }
             }
+
+            @Override
+            public void keyPressed(KeyEvent e) {
+
+            }
+
+            @Override
+            public void keyReleased(KeyEvent e) {
+
+            }
         });
     }
 
@@ -301,7 +282,7 @@ public class Einzelansicht extends JFrame implements TableModelListener, ActionL
                 try {
                     if (r.next()) {
                         einfügen(r);
-                        vid=r.getInt("V_ID");
+                        vid = r.getInt("V_ID");
                         detailtab(vid);
                     }
                 } catch (SQLException ex) {
@@ -312,7 +293,7 @@ public class Einzelansicht extends JFrame implements TableModelListener, ActionL
                 try {
                     if (r.previous()) {
                         einfügen(r);
-                        vid=r.getInt("V_ID");
+                        vid = r.getInt("V_ID");
                         detailtab(vid);
                     }
                 } catch (SQLException ex) {
@@ -320,7 +301,7 @@ public class Einzelansicht extends JFrame implements TableModelListener, ActionL
                 }
                 break;
             case "einf":
-                Hinzufügen d = new Hinzufügen(r, tab,this,true);
+                Hinzufügen d = new Hinzufügen(r, tab, this, true);
                 d.setVisible(true);
 
                 break;
@@ -357,13 +338,15 @@ public class Einzelansicht extends JFrame implements TableModelListener, ActionL
         }
 
     }
-    public void detailtab(int vid){
 
-        detail = new JTable(Datail.detailmodel(vid,url));
+    public void detailtab(int vid) {
+
+        detail = new JTable(Datail.detailmodel(vid, url));
         detail.setAutoCreateRowSorter(true);
         dsc = new JScrollPane(detail);
         dsc.setBounds(20, 250, 550, 400);
         dsc.getHorizontalScrollBar();
         this.add(dsc);
+
     }
 }
diff --git a/src/Hinzufügen.java b/src/Hinzufügen.java
index 26cc6ce..0ecb70e 100644
--- a/src/Hinzufügen.java
+++ b/src/Hinzufügen.java
@@ -1,8 +1,8 @@
 import javax.swing.*;
-import javax.swing.table.DefaultTableModel;
 import java.awt.*;
 import java.awt.event.*;
 import java.sql.*;
+import static javax.swing.WindowConstants.DISPOSE_ON_CLOSE;
 
 public class Hinzufügen extends Dialog implements ActionListener {
     JFrame frame;
@@ -21,7 +21,6 @@ public class Hinzufügen extends Dialog implements ActionListener {
 
         this.setSize(500, 600);
         this.setLayout(null);
-        owner.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
 
         a = new JButton("Zurück");
         a.setBounds(50, 30, 80, 50);
diff --git a/src/Suchen.java b/src/Suchen.java
new file mode 100644
index 0000000..fee6ee6
--- /dev/null
+++ b/src/Suchen.java
@@ -0,0 +1,103 @@
+import javax.swing.*;
+import javax.swing.event.DocumentEvent;
+import javax.swing.event.DocumentListener;
+import java.awt.*;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.sql.*;
+
+public class Suchen {
+
+    static String url = "jdbc:mariadb://127.0.0.1:3306/bundesliga";
+    static JFrame frame;
+    static DefaultListModel liste;
+    static JList list;
+    static JScrollPane sc;
+    static int index = 0;
+    static boolean auswahl = false;
+    static boolean fertig = false;
+
+
+    public static ResultSet search(String st, ResultSet rs) {
+        String sq = "";
+        String sql = "";
+        liste = new DefaultListModel();
+        list = new JList(liste);
+        if (st.length() != 0) {
+            try {
+                //SQL String
+                ResultSetMetaData rm = rs.getMetaData();
+                for (int j = 1; j <= rm.getColumnCount(); j++) {
+                    if (j == rm.getColumnCount()) {
+                        sq = sq + rm.getColumnName(j) + " LIKE '%" + st + "%'";
+                    } else {
+                        sq = sq + rm.getColumnName(j) + " LIKE '%" + st + "%' or ";
+                    }
+                }
+                sql = "SELECT * FROM Verein WHERE " + sq;
+                System.out.println(sql);
+                Connection conn = DriverManager.getConnection(url, "root", "");
+                Statement s = conn.createStatement();
+                ResultSet r = s.executeQuery(sql);
+
+                //Ergebnisse in Liste
+                if (r.next()) {
+                    r.beforeFirst();
+                    while (r.next()) {
+                        liste.addElement(r.getString("Name"));
+                    }
+                    r.first();
+                    frame = new JFrame("Suchergebnis");
+                    frame.setSize(300, 300);
+                    frame.setVisible(true);
+
+                    sc = new JScrollPane();
+                    sc.setViewportView(list);
+                    sc.setBounds(30, 100, 150, 200);
+                    frame.add(sc);
+
+                    //Auswahl durch Doppelklick
+                    list.addMouseListener(new MouseAdapter() {
+                        @Override
+                        public void mouseClicked(MouseEvent e) {
+                            super.mouseClicked(e);
+                            JList list = (JList) e.getSource();
+                            if (e.getClickCount() == 2) {
+                                index = list.locationToIndex(e.getPoint()) + 1;
+                                frame.dispose();
+                                list = null;
+                                liste = null;
+                                try {
+                                    r.absolute(index);
+                                    System.out.println("index =" + index);
+                                    Einzelansicht.einfügen(r);
+                                    Einzelansicht.r = r;
+                                    auswahl = true;
+                                } catch (SQLException ex) {
+                                    throw new RuntimeException(ex);
+                                }
+
+                            }
+                        }
+                    });
+
+
+                    System.out.println(auswahl);
+                    return r;
+                } else {
+                    throw new Exception();
+                }
+
+            } catch (SQLException e) {
+                throw new RuntimeException(e);
+            } catch (Exception e) {
+                return rs;
+            }
+
+        }
+        return rs;
+    }
+}
+
+