diff --git a/out/production/IDB-Hue-Projekt/Hinzufügen.class b/out/production/IDB-Hue-Projekt/Hinzufügen.class index 7f642d8..12b135b 100644 Binary files a/out/production/IDB-Hue-Projekt/Hinzufügen.class and b/out/production/IDB-Hue-Projekt/Hinzufügen.class differ 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; + } +} + +