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.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);
}
}

View File

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

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