This commit is contained in:
Paul Köster 2023-03-14 11:18:04 +01:00
parent ec851ad0c1
commit 83909d59d9
4 changed files with 136 additions and 51 deletions

View File

@ -1,9 +1,12 @@
import javax.swing.*; import javax.swing.*;
import javax.swing.event.*; import javax.swing.event.*;
import javax.swing.table.DefaultTableModel; import javax.swing.table.DefaultTableModel;
import javax.xml.crypto.dsig.keyinfo.KeyName;
import java.awt.*; import java.awt.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.sql.*; import java.sql.*;
public class Einzelansicht extends JFrame implements TableModelListener, ActionListener { 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); Font font = new Font("Arial", Font.PLAIN, 12);
String sql = null; String sql = null;
String sq = "";
JMenuBar bar = null; JMenuBar bar = null;
JMenu dat = null; JMenu dat = null;
JMenu bew = null; JMenu bew = null;
JMenu adm = null; JMenu adm = null;
JMenuItem i1, i2, i3, i4, i5, i6, i7; JMenuItem i1, i2, i3, i4, i5, i6, i7;
JTable detail; static JTable detail;
JScrollPane dsc; static JScrollPane dsc;
int vid=1; int vid = 1;
public Einzelansicht(String ta) { public Einzelansicht(String ta) {
@ -175,9 +176,6 @@ public class Einzelansicht extends JFrame implements TableModelListener, ActionL
t.addTableModelListener(this); t.addTableModelListener(this);
} }
public static void einfügen(ResultSet r) { public static void einfügen(ResultSet r) {
@ -208,50 +206,33 @@ public class Einzelansicht extends JFrame implements TableModelListener, ActionL
} }
public void suchen() { public void suchen() {
s.getDocument().addDocumentListener(new DocumentListener() {
@Override
public void insertUpdate(DocumentEvent e) {
search(s.getText());
}
s.addKeyListener(new KeyListener() {
@Override @Override
public void removeUpdate(DocumentEvent e) { public void keyTyped(KeyEvent e) {
search(s.getText()); if(e.getKeyChar()==KeyEvent.VK_ENTER){
}
@Override
public void changedUpdate(DocumentEvent e) {
search(s.getText());
}
public void search(String st) {
if (st.length() == 0) {
} else {
try { try {
for (int j = 1; j <= rm.getColumnCount(); j++) { r = Suchen.search(s.getText(),r);
if (j == rm.getColumnCount()) { s.setText("");
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();
einfügen(r); einfügen(r);
vid=r.getInt("V_ID"); vid = r.getInt("V_ID");
detailtab(vid); detailtab(vid);
sq = ""; } catch (SQLException ex) {
sql = ""; throw new RuntimeException(ex);
} catch (SQLException e) {
throw new RuntimeException(e);
} }
} }
} }
@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 { try {
if (r.next()) { if (r.next()) {
einfügen(r); einfügen(r);
vid=r.getInt("V_ID"); vid = r.getInt("V_ID");
detailtab(vid); detailtab(vid);
} }
} catch (SQLException ex) { } catch (SQLException ex) {
@ -312,7 +293,7 @@ public class Einzelansicht extends JFrame implements TableModelListener, ActionL
try { try {
if (r.previous()) { if (r.previous()) {
einfügen(r); einfügen(r);
vid=r.getInt("V_ID"); vid = r.getInt("V_ID");
detailtab(vid); detailtab(vid);
} }
} catch (SQLException ex) { } catch (SQLException ex) {
@ -320,7 +301,7 @@ public class Einzelansicht extends JFrame implements TableModelListener, ActionL
} }
break; break;
case "einf": 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); d.setVisible(true);
break; 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); detail.setAutoCreateRowSorter(true);
dsc = new JScrollPane(detail); dsc = new JScrollPane(detail);
dsc.setBounds(20, 250, 550, 400); dsc.setBounds(20, 250, 550, 400);
dsc.getHorizontalScrollBar(); dsc.getHorizontalScrollBar();
this.add(dsc); this.add(dsc);
} }
} }

View File

@ -1,8 +1,8 @@
import javax.swing.*; import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*; import java.awt.*;
import java.awt.event.*; import java.awt.event.*;
import java.sql.*; import java.sql.*;
import static javax.swing.WindowConstants.DISPOSE_ON_CLOSE;
public class Hinzufügen extends Dialog implements ActionListener { public class Hinzufügen extends Dialog implements ActionListener {
JFrame frame; JFrame frame;
@ -21,7 +21,6 @@ public class Hinzufügen extends Dialog implements ActionListener {
this.setSize(500, 600); this.setSize(500, 600);
this.setLayout(null); this.setLayout(null);
owner.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
a = new JButton("Zurück"); a = new JButton("Zurück");
a.setBounds(50, 30, 80, 50); a.setBounds(50, 30, 80, 50);

103
src/Suchen.java Normal file
View File

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