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; + } +} + +