This commit is contained in:
Paul Köster 2023-01-26 10:38:52 +01:00
parent 5f45b492ba
commit bab3b9b231
6 changed files with 125 additions and 51 deletions

View File

@ -1,5 +1,6 @@
import javax.swing.*; import javax.swing.*;
import javax.swing.table.DefaultTableModel; import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.*; import java.awt.event.*;
import java.sql.*; import java.sql.*;
@ -17,6 +18,7 @@ public class Hinzufügen extends JFrame implements ActionListener {
String spalten = ""; String spalten = "";
String sname = ""; String sname = "";
Font font = new Font("Arial",Font.PLAIN,12);
public Hinzufügen(ResultSet r, String tab) { public Hinzufügen(ResultSet r, String tab) {
this.setSize(500, 600); this.setSize(500, 600);
@ -26,6 +28,9 @@ public class Hinzufügen extends JFrame implements ActionListener {
a = new JButton("Zurück"); a = new JButton("Zurück");
a.setBounds(50, 30, 80, 50); a.setBounds(50, 30, 80, 50);
a.setFont(font);
a.setBackground(Color.white);
a.setForeground(Color.black);
a.addActionListener(e -> { a.addActionListener(e -> {
this.dispose(); this.dispose();
}); });
@ -53,6 +58,9 @@ public class Hinzufügen extends JFrame implements ActionListener {
} }
einf = new JButton("Einfügen"); einf = new JButton("Einfügen");
einf.setBounds(50, 480, 100, 50); einf.setBounds(50, 480, 100, 50);
einf.setFont(font);
einf.setForeground(Color.black);
einf.setBackground(Color.white);
einf.addActionListener(e -> { einf.addActionListener(e -> {
for (int i = 1; i < z; i++) { for (int i = 1; i < z; i++) {
try { try {

View File

@ -9,7 +9,7 @@ public class Menu extends JFrame implements ActionListener {
JLabel i = null; JLabel i = null;
JList list = null; JList list = null;
ImageIcon img = null; ImageIcon img =new ImageIcon("Bundesliga.jpg");
String url = "jdbc:mariadb://127.0.0.1:3306/bundesliga"; String url = "jdbc:mariadb://127.0.0.1:3306/bundesliga";
@ -23,28 +23,40 @@ public class Menu extends JFrame implements ActionListener {
this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setLayout(null); this.setLayout(null);
this.setBackground(Color.WHITE); this.setBackground(Color.WHITE);
this.setIconImage(img.getImage());
a = new JButton("Anzeigen"); a = new JButton("Anzeigen");
a.setBounds(200, 200, 150, 70); a.setBounds(200, 200, 90, 60);
a.setFont(new Font("Arial",Font.PLAIN,15)); a.setFont(new Font("Arial",Font.PLAIN,12));
a.setForeground(Color.black);
a.setBackground(Color.white);
a.addActionListener(e -> { a.addActionListener(e -> {
try (Connection conn = DriverManager.getConnection(url, "root", "")){ try (Connection conn = DriverManager.getConnection(url, "root", "")){
if (list.isSelectionEmpty()){
JOptionPane.showMessageDialog(null,"Wählen sie eine Tabelle aus!");
}else {
String table = list.getSelectedValue().toString(); String table = list.getSelectedValue().toString();
Tabellen t = new Tabellen(url,table); Tabellen t = new Tabellen(url, table);
t.setVisible(true); t.setVisible(true);
t.setTitle(list.getSelectedValue().toString()); t.setTitle(list.getSelectedValue().toString());
this.dispose();
}
} catch (SQLException ex) { } catch (SQLException ex) {
throw new RuntimeException(ex); throw new RuntimeException(ex);
} }
this.dispose();
}); });
this.add(a); this.add(a);
DefaultListModel liste = new DefaultListModel(); DefaultListModel liste = new DefaultListModel();
list = new JList(liste); list = new JList(liste);
list.addListSelectionListener(e->{
if (list.getSelectedValue().toString().equalsIgnoreCase("Verein")||list.getSelectedValue().toString().equalsIgnoreCase("Spieler")){
System.out.println(list.getSelectedValue());
}
});
sc = new JScrollPane(); sc = new JScrollPane();
sc.setViewportView(list); sc.setViewportView(list);
sc.setBounds(30, 150, 150, 200); sc.setBounds(30, 150, 150, 200);
@ -64,7 +76,7 @@ public class Menu extends JFrame implements ActionListener {
public void paint(Graphics g) { public void paint(Graphics g) {
super.paint(g); super.paint(g);
img = new ImageIcon("src/image/Bundesliga.jpg");
i = new JLabel(img); i = new JLabel(img);
i.setBounds(150, 280, 200, 100); i.setBounds(150, 280, 200, 100);
this.add(i); this.add(i);

View File

@ -1,9 +1,7 @@
import javax.swing.*; import javax.swing.*;
import javax.swing.event.TableModelEvent; import javax.swing.event.*;
import javax.swing.event.TableModelListener; import javax.swing.table.*;
import javax.swing.table.DefaultTableModel; import java.awt.*;
import javax.swing.table.JTableHeader;
import java.awt.event.*;
import java.sql.*; import java.sql.*;
public class Tabellen extends JFrame implements TableModelListener { public class Tabellen extends JFrame implements TableModelListener {
@ -16,23 +14,36 @@ public class Tabellen extends JFrame implements TableModelListener {
static JTable table = new JTable(t); static JTable table = new JTable(t);
static ResultSet r = null; static ResultSet r = null;
static String url = "jdbc:mariadb://127.0.0.1:3306/bundesliga"; static String url = "jdbc:mariadb://127.0.0.1:3306/bundesliga";
TableRowSorter sorter = null;
JTextField s = null;
String tab = null;
JLabel such = null;
Font font = new Font("Arial",Font.PLAIN,12);
public Tabellen(String url, String tab) { public Tabellen(String url, String ta) {
this.setSize(500, 600); this.setSize(500, 600);
this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setLayout(null); this.setLayout(null);
tab = ta;
einfügen(tab); einfügen(tab);
sc = new JScrollPane(table); sc = new JScrollPane(table);
sc.setBounds(50, 100, 400, 350); sc.setBounds(50, 100, 400, 350);
sc.getHorizontalScrollBar(); sc.getHorizontalScrollBar();
this.add(sc); this.add(sc);
a = new JButton("Zurück"); a = new JButton("Zurück");
a.setBounds(50, 30, 80, 50); a.setBounds(50, 30, 70, 50);
a.setForeground(Color.BLACK);
a.setBackground(Color.white);
a.setFont(font);
a.addActionListener(e -> { a.addActionListener(e -> {
this.dispose(); this.dispose();
Menu m = new Menu(); Menu m = new Menu();
@ -42,6 +53,9 @@ public class Tabellen extends JFrame implements TableModelListener {
einf = new JButton("Einfügen"); einf = new JButton("Einfügen");
einf.setBounds(50, 480, 100, 50); einf.setBounds(50, 480, 100, 50);
einf.setForeground(Color.BLACK);
einf.setBackground(Color.white);
einf.setFont(font);
einf.addActionListener(e -> { einf.addActionListener(e -> {
Hinzufügen d = new Hinzufügen(r, tab); Hinzufügen d = new Hinzufügen(r, tab);
d.setVisible(true); d.setVisible(true);
@ -53,6 +67,9 @@ public class Tabellen extends JFrame implements TableModelListener {
del = new JButton("Löschen"); del = new JButton("Löschen");
del.setBounds(180, 480, 100, 50); del.setBounds(180, 480, 100, 50);
del.setForeground(Color.BLACK);
del.setBackground(Color.white);
del.setFont(font);
del.addActionListener(e -> { del.addActionListener(e -> {
Löschen l = new Löschen(tab, t, table); Löschen l = new Löschen(tab, t, table);
table.clearSelection(); table.clearSelection();
@ -60,43 +77,18 @@ public class Tabellen extends JFrame implements TableModelListener {
}); });
this.add(del); this.add(del);
t.addTableModelListener(e -> { such = new JLabel("Suchen");
int zeile = table.getSelectedRow(); such.setBounds(300, 10, 50, 20);
int spalte = table.getSelectedColumn(); this.add(such);
if (spalte > 0 && zeile > 0) {
int response = 0;
try {
response = JOptionPane.showConfirmDialog(null, "Wollen Sie dein Eintrag in Zeile " + (zeile + 1) + ", Spalte :" + (rm.getColumnName(spalte + 1)) + " ändern?", "Bestätigen", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
} catch (SQLException ex) {
throw new RuntimeException(ex);
}
if (response == 0) {
try (Connection conn = DriverManager.getConnection(url, "root", "")) {
Statement s = conn.createStatement();
System.out.println(t.getColumnName(spalte) + "\n" + rm.getColumnTypeName(spalte + 1));
if (rm.getColumnTypeName(spalte + 1).equalsIgnoreCase("Varchar")) {
ResultSet r = s.executeQuery("Update " + tab + " set " + t.getColumnName(spalte) + "= '" + t.getValueAt(zeile, spalte).toString() + "' WHERE " + t.getColumnName(0) + " = " + t.getValueAt(zeile, 0));
} else if (rm.getColumnTypeName(spalte + 1).equalsIgnoreCase("Date")) { s = new JTextField();
ResultSet r = s.executeQuery("Update " + tab + " set " + t.getColumnName(spalte) + "= '" + t.getValueAt(zeile, spalte).toString() + "' WHERE " + t.getColumnName(0) + " = " + t.getValueAt(zeile, 0)); s.setBounds(300, 30, 150, 40);
this.add(s);
suchen();
} else { t.addTableModelListener(this);
ResultSet r = s.executeQuery("Update " + tab + " set " + t.getColumnName(spalte) + "= " + t.getValueAt(zeile, spalte).toString() + " WHERE " + t.getColumnName(0) + " = " + t.getValueAt(zeile, 0));
} }
table.clearSelection();
} catch (SQLException f) {
throw new RuntimeException(f);
}
t.fireTableDataChanged();
} else {
table.clearSelection();
}
}
});
}
public static void einfügen(String tab) { public static void einfügen(String tab) {
String[][] temp = {{""}}; String[][] temp = {{""}};
@ -133,10 +125,72 @@ public class Tabellen extends JFrame implements TableModelListener {
} }
public void suchen() {
sorter = new TableRowSorter(t);
table.setRowSorter(sorter);
s.getDocument().addDocumentListener(new DocumentListener() {
@Override
public void insertUpdate(DocumentEvent e) {
search(s.getText());
}
@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) {
sorter.setRowFilter(null);
} else {
sorter.setRowFilter(RowFilter.regexFilter(st));
}
}
});
}
@Override @Override
public void tableChanged(TableModelEvent e) { public void tableChanged(TableModelEvent e) {
System.out.println(table.getSelectedRow() + "" + table.getSelectedColumn()); int zeile = table.getSelectedRow();
int spalte = table.getSelectedColumn();
if (spalte > 0 && zeile > 0) {
int response = 0;
try {
response = JOptionPane.showConfirmDialog(null, "Wollen Sie dein Eintrag in Zeile " + (zeile + 1) + ", Spalte :" + (rm.getColumnName(spalte + 1)) + " ändern?", "Bestätigen", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
} catch (SQLException ex) {
throw new RuntimeException(ex);
}
if (response == 0) {
try (Connection conn = DriverManager.getConnection(url, "root", "")) {
Statement s = conn.createStatement();
System.out.println(t.getColumnName(spalte) + "\n" + rm.getColumnTypeName(spalte + 1));
if (rm.getColumnTypeName(spalte + 1).equalsIgnoreCase("Varchar")) {
ResultSet r = s.executeQuery("Update " + tab + " set " + t.getColumnName(spalte) + "= '" + t.getValueAt(zeile, spalte).toString() + "' WHERE " + t.getColumnName(0) + " = " + t.getValueAt(zeile, 0));
} else if (rm.getColumnTypeName(spalte + 1).equalsIgnoreCase("Date")) {
ResultSet r = s.executeQuery("Update " + tab + " set " + t.getColumnName(spalte) + "= '" + t.getValueAt(zeile, spalte).toString() + "' WHERE " + t.getColumnName(0) + " = " + t.getValueAt(zeile, 0));
} else {
ResultSet r = s.executeQuery("Update " + tab + " set " + t.getColumnName(spalte) + "= " + t.getValueAt(zeile, spalte).toString() + " WHERE " + t.getColumnName(0) + " = " + t.getValueAt(zeile, 0));
} }
table.clearSelection();
} catch (SQLException f) {
throw new RuntimeException(f);
}
t.fireTableDataChanged();
} else {
table.clearSelection();
}
}
}
} }