Hallo,
ich hab mal wieder ein Problem. Also ich habe eine GUI die mir datensätze aus einer Datenbank anzeigen kann. Jetzt möchte ich diese per Klick löschen, oder wenn sie Verändert werden müssen, verändern.
Ich hab eine KLasse "ShowViewer" die mir die GUI bietet zum anzeigen, darauf befindet sich eine Toolbar für die Buttons. Dann habe ich eine Klasse "WohnungsVerwalter", diese Klasse holt mir die Datensätze aus der Datenbank. In dieser Klasse möchte ich auch, die Bearbeitungsmethode und die Löschmethode.
Und ich hab eine KLasse Verbidnung die mir MEthoden zum Löschen und editieren bereit legen.
Ich hoffe ihr könnt mir helfen.
Klasse ShowViewer
Klasse Wohnungsverwalter
ich hab mal wieder ein Problem. Also ich habe eine GUI die mir datensätze aus einer Datenbank anzeigen kann. Jetzt möchte ich diese per Klick löschen, oder wenn sie Verändert werden müssen, verändern.
Ich hab eine KLasse "ShowViewer" die mir die GUI bietet zum anzeigen, darauf befindet sich eine Toolbar für die Buttons. Dann habe ich eine Klasse "WohnungsVerwalter", diese Klasse holt mir die Datensätze aus der Datenbank. In dieser Klasse möchte ich auch, die Bearbeitungsmethode und die Löschmethode.
Und ich hab eine KLasse Verbidnung die mir MEthoden zum Löschen und editieren bereit legen.
Ich hoffe ihr könnt mir helfen.
Klasse ShowViewer
Java:
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JToolBar;
import javax.swing.SwingUtilities;
public class ShowViewer extends JPanel implements ActionListener{
/**
*
*/
WohnungVerwalter wohnung = new WohnungVerwalter();
String iconsDirectory = "icons/";
int counter;
private JTextField textField1;
private JTextField textField2;
public ShowViewer(){
super();
this.setLayout(new BorderLayout());
JToolBar toolBar = new JToolBar();
addButtons(toolBar);
addTextFelder();
toolBar.setFloatable(false);
toolBar.setRollover(true);
JPanel topPanel = new JPanel(new GridLayout(7, 5)); //dies ist ein Subcontainer
for (int i = 0; i < 25; i++)
topPanel.add( new JTextField("Feld Nr."+i) );
this.add(topPanel, BorderLayout.CENTER);
this.add(toolBar, BorderLayout.SOUTH);
//this.add(textField1, BorderLayout.CENTER);
//this.add(textField2, BorderLayout.CENTER);
// this.add(textField2, BorderLayout.SOUTH);
}
public void addTextFelder (){
textField1 = new JTextField();
textField2 = new JTextField();
}
public void addButtons(JToolBar toolBar) {
JButton button;
button = createButton("links", "Zurück" );
toolBar.add(button);
button = createButton( "rechts", "Vorwärts" );
toolBar.add(button);
button = createButton("blume", "Bearbeiten");
toolBar.add(button);
button = createButton("delet", "Löschen");
toolBar.add(button);
}
public JButton createButton(String actionCommand, String toolTipText) {
String imgLocation = iconsDirectory + actionCommand + ".jpg";
JButton button = new JButton();
button.setActionCommand(actionCommand);
button.setToolTipText(toolTipText);
button.addActionListener(this);
button.setIcon(new ImageIcon(imgLocation, actionCommand));
return button;
}
public void showNext() {
counter++;
if (counter>=wohnung.list.size()) counter = 0;
textField1.setText(wohnung.list.get(counter).getName());
textField2.setText(wohnung.list.get(counter).getMieterName());
}
public void deleteCurrent(){
String d;
String s;
d = (wohnung.list.get(counter).getID());
//vb.verbinden();
s = "DELETE FROM `mkb`.`vermieter` WHERE `vermieter`.`ID` =" + d;
}
public void editCurrent(){
}
public void showLast() {
counter--;
if (counter<= 1) //counter = 0;
textField1.setText(wohnung.list.get(counter).getName());
textField2.setText(wohnung.list.get(counter).getMieterName());
}
public static void main (String[] args)
{
// man kann natürlich seine eigene JFrame-Klasse schreiben und diese hier
// verwendent
final JFrame myFrame = new JFrame("Fenstertitel");
// Layouting des Frames: der ShowViewer ist Hauptkomponente und kommt in die Mitte
myFrame.add( new ShowViewer(), BorderLayout.CENTER );
// pack() setzt die Größe des Frames anhand des Inhaltes (daher PreferredSize von ShowViewer setzen
myFrame.pack(); //oder setSize(800, 600);
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Anzeigen des Frames
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
myFrame.setVisible(true);
}
});
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().compareTo("rechts") == 0)
this.showNext();
}}
Klasse Wohnungsverwalter
Java:
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
public class WohnungVerwalter {
String s;
ArrayList<Wohnung> list = new ArrayList<Wohnung>();
Verbindung vb = new Verbindung();
public WohnungVerwalter() {
vb.verbinden();
int counter = 0;
s = "SELECT * FROM vermieter";
ResultSet r = vb.execSql(s);
try {
while(r.next()) {
list.add(new Wohnung("ID: " + r.getString(1) ,"Wohnung: " + r.getString(1), "Name: " + r.getString(2)));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Java:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Verbindung {
public static Connection con;
public static Statement statement;
public static ResultSet rs;
private static final String className="com.mysql.jdbc.Driver";
private static final String DB_URL= "jdbc:mysql://localhost/mkb";
private static final String DB_USER = "root";
private static final String DB_PASSWD = "";
public void verbinden(){
try{
Class.forName(className);
} catch (ClassNotFoundException e){
System.out.println("JDBC driver not found.");
}
try{
con = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWD);
} catch(SQLException e){
System.out.println("Error establishing connection: " + e.getMessage());
}
}
public void trennen(){
try{
statement.close();
con.close();
}catch (SQLException e){
System.out.println("ERROR closing connection: " + e.getMessage());
}
}
public ResultSet execSql(String sql){
try {
statement = con.createStatement();
ResultSet resultSet = statement.executeQuery(sql);
return resultSet;
} catch (Exception e) {
// TODO: handle exception
}
return null;
}
public void update(String sql){
try {
statement = con.createStatement();
statement.executeUpdate(sql);
statement.close();
} catch (Exception e) {
// TODO: handle exception
}
}
}