NichtExpert
Lieutenant
- Registriert
- Feb. 2020
- Beiträge
- 593
Hallo Liebe Community,
Ich brauch dringende Hilfe. Und zwar:
Ich habe bisher eine java GUI geschrieben. In dieser GUI habe ich eine Tabelle (JTable) und eben Daten drin.
Einen Filter konnte ich auch schon einbauen und ScrollPane auch.
Die GUI habe ich mit HDSQL verbunden (Von dort kommen die Daten).
Nun soll man jedoch noch Zeilen hinzufügen, bearbeiten und löschen können.
ich habe es mir noch nicht ganz ausgemalt wie es gehen soll, ist eigentlich egal, ob mit button oder wie genau...
Ich bräuchte nur mal einen Ansatz. Dann könnte ich es bestimmt selber vervollständigen.
Ich habe mich auch schon umgeschaut, wie es geht bwz. gehen könnte und werde einfach nicht schlau aus den ganzen "Fitzel-Codes". Ich bräuchte entweder kurze Beispiele, Lösungen auf mein Programm abgestimmt oder sowas in der Art.
Ich bin schon auf Begriffe wie
Execute-Insert, -Update, -Delete oder -batch gestoßen.
Dann habe ich schon etwas über JPA gehört und einer hatte was von Hibernate erzählt. Diese kenne ich nicht und würde gerne bei JDBC bleiben, außer ihr könntet mir dabei helfen und sagen wie es geht und ob man das ganze zwingend braucht.
Bedanke mich jetzt schon mal
Code:
package AA_Test;
import java.awt.EventQueue;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.JScrollPane;
import javax.swing.RowFilter;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableRowSorter;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class MyForm extends JFrame {
/**
* Launch the application
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
MyForm frame = new MyForm();
frame.setVisible(true);
}
});
}
/**
* Create the Frame
*/
public MyForm() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 580, 242);
setTitle("ThaiCreate.Com Java GUI Tutorial");
getContentPane().setLayout(null);
// Scrollpane
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(64, 44, 440, 89);
getContentPane().add(scrollPane);
// Table
JTable table = new JTable();
scrollPane.setViewportView(table); /////////////////
// Model for Table
DefaultTableModel model = (DefaultTableModel)table.getModel(); //////////////
model.addColumn("CustomerID");
model.addColumn("Name");
model.addColumn("Email");
model.addColumn("CountryCode");
model.addColumn("Budget");
model.addColumn("Used");
JLabel lblFilter = new JLabel("Filter :");
lblFilter.setBounds(158, 147, 72, 14);
getContentPane().add(lblFilter);
// Filter
final JTextField txtFilter = new JTextField();
txtFilter.setBounds(197, 144, 129, 20);
getContentPane().add(txtFilter);
// Header Sort
final TableRowSorter<DefaultTableModel> sorter = new TableRowSorter<DefaultTableModel>(model);
table.setRowSorter(sorter);
// Button OK
JButton btnOK = new JButton("OK");
btnOK.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
String expr = txtFilter.getText();
sorter.setRowFilter(RowFilter.regexFilter(expr));
sorter.setSortKeys(null);
}
});
btnOK.setBounds(336, 144, 59, 23);
getContentPane().add(btnOK);
Connection connect = null;
Statement s = null;
try {
Class.forName("com.mysql.cj.jdbc.Driver");
connect = DriverManager.getConnection("jdbc:mysql://localhost/test","till","Tillerni02");
s = connect.createStatement();
String sql = "SELECT * FROM customer ORDER BY CustomerID ASC";
ResultSet rec = s.executeQuery(sql);
int row = 0;
while ((rec!=null) && (rec.next()))
{
model.addRow(new Object[0]);
model.setValueAt(rec.getString("CustomerID"), row, 0);
model.setValueAt(rec.getString("Name"), row, 1);
model.setValueAt(rec.getString("Email"), row, 2);
model.setValueAt(rec.getString("CountryCode"), row, 3);
model.setValueAt(rec.getFloat("Budget"), row, 4);
model.setValueAt(rec.getFloat("Used"), row, 5);
row++;
}
rec.close();
} catch (Exception e) {
// TODO Auto-generated catch block
JOptionPane.showMessageDialog(null, e.getMessage());
e.printStackTrace();
}
try {
if (s != null) {
s.close();
connect.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Ich brauch dringende Hilfe. Und zwar:
Ich habe bisher eine java GUI geschrieben. In dieser GUI habe ich eine Tabelle (JTable) und eben Daten drin.
Einen Filter konnte ich auch schon einbauen und ScrollPane auch.
Die GUI habe ich mit HDSQL verbunden (Von dort kommen die Daten).
Nun soll man jedoch noch Zeilen hinzufügen, bearbeiten und löschen können.
ich habe es mir noch nicht ganz ausgemalt wie es gehen soll, ist eigentlich egal, ob mit button oder wie genau...
Ich bräuchte nur mal einen Ansatz. Dann könnte ich es bestimmt selber vervollständigen.
Ich habe mich auch schon umgeschaut, wie es geht bwz. gehen könnte und werde einfach nicht schlau aus den ganzen "Fitzel-Codes". Ich bräuchte entweder kurze Beispiele, Lösungen auf mein Programm abgestimmt oder sowas in der Art.
Ich bin schon auf Begriffe wie
Execute-Insert, -Update, -Delete oder -batch gestoßen.
Dann habe ich schon etwas über JPA gehört und einer hatte was von Hibernate erzählt. Diese kenne ich nicht und würde gerne bei JDBC bleiben, außer ihr könntet mir dabei helfen und sagen wie es geht und ob man das ganze zwingend braucht.
Bedanke mich jetzt schon mal
Code:
package AA_Test;
import java.awt.EventQueue;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.JScrollPane;
import javax.swing.RowFilter;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableRowSorter;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class MyForm extends JFrame {
/**
* Launch the application
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
MyForm frame = new MyForm();
frame.setVisible(true);
}
});
}
/**
* Create the Frame
*/
public MyForm() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 580, 242);
setTitle("ThaiCreate.Com Java GUI Tutorial");
getContentPane().setLayout(null);
// Scrollpane
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(64, 44, 440, 89);
getContentPane().add(scrollPane);
// Table
JTable table = new JTable();
scrollPane.setViewportView(table); /////////////////
// Model for Table
DefaultTableModel model = (DefaultTableModel)table.getModel(); //////////////
model.addColumn("CustomerID");
model.addColumn("Name");
model.addColumn("Email");
model.addColumn("CountryCode");
model.addColumn("Budget");
model.addColumn("Used");
JLabel lblFilter = new JLabel("Filter :");
lblFilter.setBounds(158, 147, 72, 14);
getContentPane().add(lblFilter);
// Filter
final JTextField txtFilter = new JTextField();
txtFilter.setBounds(197, 144, 129, 20);
getContentPane().add(txtFilter);
// Header Sort
final TableRowSorter<DefaultTableModel> sorter = new TableRowSorter<DefaultTableModel>(model);
table.setRowSorter(sorter);
// Button OK
JButton btnOK = new JButton("OK");
btnOK.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
String expr = txtFilter.getText();
sorter.setRowFilter(RowFilter.regexFilter(expr));
sorter.setSortKeys(null);
}
});
btnOK.setBounds(336, 144, 59, 23);
getContentPane().add(btnOK);
Connection connect = null;
Statement s = null;
try {
Class.forName("com.mysql.cj.jdbc.Driver");
connect = DriverManager.getConnection("jdbc:mysql://localhost/test","till","Tillerni02");
s = connect.createStatement();
String sql = "SELECT * FROM customer ORDER BY CustomerID ASC";
ResultSet rec = s.executeQuery(sql);
int row = 0;
while ((rec!=null) && (rec.next()))
{
model.addRow(new Object[0]);
model.setValueAt(rec.getString("CustomerID"), row, 0);
model.setValueAt(rec.getString("Name"), row, 1);
model.setValueAt(rec.getString("Email"), row, 2);
model.setValueAt(rec.getString("CountryCode"), row, 3);
model.setValueAt(rec.getFloat("Budget"), row, 4);
model.setValueAt(rec.getFloat("Used"), row, 5);
row++;
}
rec.close();
} catch (Exception e) {
// TODO Auto-generated catch block
JOptionPane.showMessageDialog(null, e.getMessage());
e.printStackTrace();
}
try {
if (s != null) {
s.close();
connect.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}