Angeltje92
Nieuwe gebruiker
- Lid geworden
- 30 jun 2014
- Berichten
- 2
Heey allemaal,
Sorry als deze in de verkeerde thread staat.
Wanneer ik de applicatie die ik in Eclipse heb gemaakt probeer te runnen,krijg ik eerst de melding dat de connectie is gemaakt en daarna krijg ik de foutmelding:
"SQL foutmelding: Table 'voorjava.afhaalmenus' doesn't exist"
Ik ben wel gewoon verbonden met de WampServer.
Ik heb de bijlage van de foutmelding erbij gedaan.
Zie hieronder de volledige code:
Kreta class:
//Importeer bibliotheken
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Vector;
import java.sql.*;
// *********************
public class Kreta {
// In deze class worden de database bewerkingen uitgevoerd
private Connectie con;
private Vector vec;
private int menu_id;
private String naam_gerecht;
private String prijs;
private String ingredienten;
private String recept;
public void setId(int id){
this.menu_id=menu_id;
}
public int getId(){
return this.menu_id;
}
public void setNaam_Gerecht(String naam_gerecht){
this.naam_gerecht=naam_gerecht;
}
public String getNaam_Gerecht(){
return this.naam_gerecht;
}
public void setPrijs(String prijs){
this.prijs=prijs;
}
public String getPrijs(){
return this.prijs;
}
public void setIngredienten(String ingredienten){
this.ingredienten=ingredienten;
}
public String getIngredienten(){
return this.ingredienten;
}
public void setRecept(String recept){
this.recept=recept;
}
public String getRecept(){
return this.recept;
}
public Kreta(){
con = new Connectie();
vec = new Vector();
}
public Kreta(int menu_id,String naam_gerecht,String prijs,String ingredienten,String recept){
this();
this.menu_id = menu_id;
this.naam_gerecht = naam_gerecht;
this.prijs = prijs;
this.ingredienten = ingredienten;
this.recept = recept;
}
public Vector leesAlleGerechten(){
// Maak een vector die alle records uit de tabel afhaalmenus ophaalt.
try {
Statement statement = con.connection.createStatement();
String gget;
gget = "SELECT DISTINCT menu_id,naam_gerecht,prijs FROM afhaalmenus;";
ResultSet rs = statement.executeQuery(gget);
while (rs.next()){
Vector vRow = new Vector<>();
for(int x = 1;x <=3;x++){
vRow.addElement(rs.getString(x));
}
vec.add(vRow);
}
} catch (Exception e) {
con.displaySQLErrors(e);
}
return vec;
}
public void leesGerecht(int id){
// Lees een record met het meegegeven id uit de tabel afhaalmenus
try{
PreparedStatement sset = con.connection.prepareStatement("SELECT DISTINCT * FROM afhaalmenus WHERE menu_id = ? ");
sset.setInt(1, id); //Eerste parameter '?' is het menu_id welke wordt toegekend in het eerste stuk van de functie.
ResultSet rs = sset.executeQuery();
rs.next();
this.menu_id = rs.getInt(1);
this.naam_gerecht = rs.getString(2);
this.prijs = rs.getString(3);
this.ingredienten = rs.getString(4);
this.recept = rs.getString(5);
}catch(Exception e){
e.printStackTrace(); // Ik maak gebruik van de printstack om meer informatie te verkrijgen bij een exception
}
}
public void wisGerecht(int id){
// Delete het record met het menu_id id uit de tabel afhaalmenus
try {
PreparedStatement sset = con.connection.prepareStatement("DELETE FROM afhaalmenus WHERE menu_id = ?");
sset.setInt(1, id); //Eerste parameter '?' is het menu_id welke wordt toegekend in het eerste stuk van de functie.
sset.executeUpdate();
}
catch (Exception e){
e.printStackTrace(); // Ik maak gebruik van de printstack om meer informatie te verkrijgen bij een exception
}
}
public void nieuwGerecht(){
// Voeg een niewu record toe aan de tabel afhaalmenus
try {
Statement statement = con.connection.createStatement();
String gget;
// Verkrijg het hoogste menu_id
gget = "SELECT max(afhaalmenus.menu_id) FROM afhaalmenus;";
ResultSet rs = statement.executeQuery(gget);
// Ga naar het laatste record in de Resultset
rs.last();
// Verhoog het hoogste menu_id met 1
this.menu_id = (rs.getInt(1)) + 1;
}
catch (Exception e) {
con.displaySQLErrors(e);
}
try {
// Insert statement opbouwen
// Ik maak gebruik van een prepared statement omdat dit veel overzichtelijker werkt
PreparedStatement sset = con.connection.prepareStatement("INSERT INTO afhaalmenus (menu_id,naam_gerecht,prijs,ingredienten,recept) VALUES (?,?,?,?,?)");
sset.setInt(1, this.menu_id); //Eerste parameter '?' is het menu_id welke wordt toegekend in het eerste stuk van de functie.
sset.setString(2, this.naam_gerecht); //Tweede parameter '?' is het naam_gerecht
sset.setString(3, this.prijs); //Derde parameter '?' is het prijs
sset.setString(4, this.ingredienten); //Vierde parameter '?' is het ingredienten
sset.setString(5, this.recept); //Vijfde parameter '?' is het recept
sset.executeUpdate();
}
catch (Exception e){
e.printStackTrace(); // Ik maak gebruik van de printstack om meer informatie te verkrijgen bij een exception
}
}
public void bewerkGerecht(int id) {
// Update het geselecteerde record in de tabel afhaalmenus
try
{
PreparedStatement sset = con.connection.prepareStatement("UPDATE afhaalmenus SET naam_gerecht = ?,prijs = ?,ingredienten = ?,recept = ? " +
"WHERE menu_id = ?");
sset.setString(1, this.naam_gerecht);
sset.setString(2, this.prijs);
sset.setString(3, this.ingredienten);
sset.setString(4, this.recept);
sset.setInt(5, id);
sset.executeUpdate();
}
catch(Exception e) {
e.printStackTrace(); // Ik maak gebruik van de printstack om meer informatie te verkrijgen bij een exception
}
}
}
KretaGUI class:
//Importeer bibliotheken
import javax.swing.*;
import java.util.Vector;
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.JPanel;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
// ************************************
public class KretaGUI {
// In deze class wordt de GUI en alle events (JButton en JList) opgebouwd
JFrame frame;
JButton bNieuw;
JButton bToevoegen;
JButton bBewerken;
JButton bWis;
JTextField tId;
JTextField tNaam_gerecht;
JTextField tPrijs;
JTextArea tRecept;
JTextArea tIngredienten;
JLabel lId;
JLabel lNaam_gerecht;
JLabel lPrijs;
JLabel lRecept;
JLabel lIngredienten;
JList gerechten;
public KretaGUI(){
Kreta kreta = new Kreta();
Vector tabel;
tabel = kreta.leesAlleGerechten();
frame = new JFrame("Afhaalmenus");
bNieuw = new JButton("Nieuw");
bNieuw.addActionListener(new bNieuwListener());
bToevoegen = new JButton("Toevoegen");
bToevoegen.addActionListener(new bToevoegenListener());
bBewerken = new JButton("Bewerken");
bBewerken.addActionListener(new bBewerkenListener());
bWis = new JButton("Wissen");
bWis.addActionListener(new bWisListener());
tId = new JTextField(3);
tId.setEditable(false); // Het veld ID mag niet handmatig worden aangepast
tNaam_gerecht = new JTextField(20);
tPrijs = new JTextField(20);
tRecept = new JTextArea(5,20);
tIngredienten = new JTextArea(5,20);
lId = new JLabel("Id:");
lNaam_gerecht = new JLabel("Naam:");
lPrijs = new JLabel("Prijs:");
lRecept = new JLabel("Recept:");
lIngredienten = new JLabel("Ingredienten:");
JPanel panelA = new JPanel(new FlowLayout(FlowLayout.LEFT)); //Plaats de buttons boven in het frame links uitgelijnd
JPanel panelB = new JPanel(); // Verzamel de textfields en textareas
JPanel panelC = new JPanel(); //JList
panelB.setLayout(new BoxLayout(panelB, BoxLayout.Y_AXIS)); //Plaats de labels en invoervelden onder elkaar
// opmaak JTextArea
JScrollPane sRecept = new JScrollPane(tRecept);
tRecept.setLineWrap(true);
sRecept.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
sRecept.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
JScrollPane sIngredienten = new JScrollPane(tIngredienten);
tIngredienten.setLineWrap(true);
sIngredienten.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
sIngredienten.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
// ***************************
panelA.add(bNieuw);
panelA.add(bToevoegen);
panelA.add(bBewerken);
panelA.add(bWis);
panelB.add(lId);
panelB.add(tId);
panelB.add(lNaam_gerecht);
panelB.add(tNaam_gerecht);
panelB.add(lPrijs);
panelB.add(tPrijs);
panelB.add(lRecept);
panelB.add(sRecept);
panelB.add(lIngredienten);
panelB.add(sIngredienten);
gerechten = new JList(tabel);
gerechten.addListSelectionListener(new LijstListener());
gerechten.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // Er kan maar 1 regel geselecteerd worden in de JList
gerechten.setSelectedIndex(-1); // Geen regel is geselecteerd
panelC.add(gerechten);
frame.getContentPane().add(BorderLayout.NORTH,panelA);
frame.getContentPane().add(BorderLayout.WEST,panelB);
frame.getContentPane().add(BorderLayout.EAST,panelC);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600,600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
public static void main(String[] args) {
KretaGUI afhaal = new KretaGUI();
}
class bNieuwListener implements ActionListener{
// Maak alle velden leeg en verwijder de selectie van de JList als er op nieuw wordt geklikt.
public void actionPerformed(ActionEvent event){
gerechten.clearSelection(); // Zorg ervoor dat er geen recepten meer geselecteerd zijn
tId.setText("");
tNaam_gerecht.setText("");
tPrijs.setText("");
tIngredienten.setText("");
tRecept.setText("");
tNaam_gerecht.requestFocus(); // Zet de focus in het veld naam
}
}
class bBewerkenListener implements ActionListener{
public void actionPerformed(ActionEvent event){
int Geselecteerd;
Geselecteerd = gerechten.getSelectedIndex(); // Bewaar de selectedindex van de JList
Kreta kreta = new Kreta();
kreta.setNaam_Gerecht(tNaam_gerecht.getText());
kreta.setPrijs(tPrijs.getText());
kreta.setIngredienten(tIngredienten.getText());
kreta.setRecept(tRecept.getText());
kreta.bewerkGerecht(Integer.parseInt(tId.getText()));
gerechten.setListData(kreta.leesAlleGerechten());
gerechten.repaint();
gerechten.setSelectedIndex(Geselecteerd); // Selecteer de rij in de JList van het huidige record
}
}
class bToevoegenListener implements ActionListener{
// Voeg het nieuwe gerecht toe aan de database (insert)
public void actionPerformed(ActionEvent event){
Kreta kreta = new Kreta();
kreta.setNaam_Gerecht(tNaam_gerecht.getText());
kreta.setPrijs(tPrijs.getText());
kreta.setIngredienten(tIngredienten.getText());
kreta.setRecept(tRecept.getText());
kreta.nieuwGerecht();
// Toon nieuwe menu_id in JTextfield tId
tId.setText(kreta.getId() + "");
// Vul de JList gerechten met de nieuwe data
gerechten.setListData(kreta.leesAlleGerechten());
gerechten.repaint();
}
}
// Deze Klasse roept wisRecept aan
class bWisListener implements ActionListener{
public void actionPerformed(ActionEvent event){
Kreta kreta = new Kreta();
kreta.wisGerecht(Integer.parseInt(tId.getText()));
gerechten.setListData(kreta.leesAlleGerechten());
gerechten.repaint();
gerechten.clearSelection(); // Zorg ervoor dat er geen recepten meer geselecteerd zijn
tId.setText("");
tNaam_gerecht.setText("");
tPrijs.setText("");
tIngredienten.setText("");
tRecept.setText("");
tNaam_gerecht.requestFocus(); // Zet de focus in het veld naam
;
}
}
class LijstListener implements ListSelectionListener
{
public void valueChanged(ListSelectionEvent e)
{
if (e.getValueIsAdjusting())
{
Kreta kreta = new Kreta();
try
{
int menu_id = Integer.parseInt(((Vector)gerechten.getSelectedValue()).elementAt(0).toString());
kreta.leesGerecht(menu_id);
//tfdMenuID.setText(getmenu_id() + "");
tId.setText(kreta.getId() + "");
tNaam_gerecht.setText(kreta.getNaam_Gerecht());
tPrijs.setText(kreta.getPrijs());
tIngredienten.setText(kreta.getIngredienten());
tRecept.setText(kreta.getRecept());
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null, ex.getMessage(), "Fout", JOptionPane.ERROR_MESSAGE);
}
}
}
}
}
Connectie class:
import java.sql.*;
import javax.swing.JOptionPane;
public class Connectie {
private String host = "localhost";
private String user = "root";
private String password = "";
private String databasenaam = "voorjava";
Connection connection;
public void displaySQLErrors(Exception e){
String error;
error = "SQL foutmelding: " + e.getMessage();
JOptionPane.showMessageDialog(null, error, "foutmelding", JOptionPane.ERROR_MESSAGE);
}
public Connectie(){
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
}catch(Exception e){
String error = "Niet mogelijk om de driver te laden";
JOptionPane.showMessageDialog(null, error, "foutmelding", JOptionPane.ERROR_MESSAGE);
System.exit(1);
}
try{
connection = DriverManager.getConnection("jdbc:mysql://"
+ this.host + "/"
+ this.databasenaam + "?user="
+ this.user
+ "&password=" + this.password);
String success = "Er is een connectie met de database";
JOptionPane.showMessageDialog(null,success, "success", JOptionPane.INFORMATION_MESSAGE);
} catch(Exception e) {
displaySQLErrors(e);
}
}
}
Sorry als deze in de verkeerde thread staat.
Wanneer ik de applicatie die ik in Eclipse heb gemaakt probeer te runnen,krijg ik eerst de melding dat de connectie is gemaakt en daarna krijg ik de foutmelding:
"SQL foutmelding: Table 'voorjava.afhaalmenus' doesn't exist"
Ik ben wel gewoon verbonden met de WampServer.
Ik heb de bijlage van de foutmelding erbij gedaan.
Zie hieronder de volledige code:
Kreta class:
//Importeer bibliotheken
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Vector;
import java.sql.*;
// *********************
public class Kreta {
// In deze class worden de database bewerkingen uitgevoerd
private Connectie con;
private Vector vec;
private int menu_id;
private String naam_gerecht;
private String prijs;
private String ingredienten;
private String recept;
public void setId(int id){
this.menu_id=menu_id;
}
public int getId(){
return this.menu_id;
}
public void setNaam_Gerecht(String naam_gerecht){
this.naam_gerecht=naam_gerecht;
}
public String getNaam_Gerecht(){
return this.naam_gerecht;
}
public void setPrijs(String prijs){
this.prijs=prijs;
}
public String getPrijs(){
return this.prijs;
}
public void setIngredienten(String ingredienten){
this.ingredienten=ingredienten;
}
public String getIngredienten(){
return this.ingredienten;
}
public void setRecept(String recept){
this.recept=recept;
}
public String getRecept(){
return this.recept;
}
public Kreta(){
con = new Connectie();
vec = new Vector();
}
public Kreta(int menu_id,String naam_gerecht,String prijs,String ingredienten,String recept){
this();
this.menu_id = menu_id;
this.naam_gerecht = naam_gerecht;
this.prijs = prijs;
this.ingredienten = ingredienten;
this.recept = recept;
}
public Vector leesAlleGerechten(){
// Maak een vector die alle records uit de tabel afhaalmenus ophaalt.
try {
Statement statement = con.connection.createStatement();
String gget;
gget = "SELECT DISTINCT menu_id,naam_gerecht,prijs FROM afhaalmenus;";
ResultSet rs = statement.executeQuery(gget);
while (rs.next()){
Vector vRow = new Vector<>();
for(int x = 1;x <=3;x++){
vRow.addElement(rs.getString(x));
}
vec.add(vRow);
}
} catch (Exception e) {
con.displaySQLErrors(e);
}
return vec;
}
public void leesGerecht(int id){
// Lees een record met het meegegeven id uit de tabel afhaalmenus
try{
PreparedStatement sset = con.connection.prepareStatement("SELECT DISTINCT * FROM afhaalmenus WHERE menu_id = ? ");
sset.setInt(1, id); //Eerste parameter '?' is het menu_id welke wordt toegekend in het eerste stuk van de functie.
ResultSet rs = sset.executeQuery();
rs.next();
this.menu_id = rs.getInt(1);
this.naam_gerecht = rs.getString(2);
this.prijs = rs.getString(3);
this.ingredienten = rs.getString(4);
this.recept = rs.getString(5);
}catch(Exception e){
e.printStackTrace(); // Ik maak gebruik van de printstack om meer informatie te verkrijgen bij een exception
}
}
public void wisGerecht(int id){
// Delete het record met het menu_id id uit de tabel afhaalmenus
try {
PreparedStatement sset = con.connection.prepareStatement("DELETE FROM afhaalmenus WHERE menu_id = ?");
sset.setInt(1, id); //Eerste parameter '?' is het menu_id welke wordt toegekend in het eerste stuk van de functie.
sset.executeUpdate();
}
catch (Exception e){
e.printStackTrace(); // Ik maak gebruik van de printstack om meer informatie te verkrijgen bij een exception
}
}
public void nieuwGerecht(){
// Voeg een niewu record toe aan de tabel afhaalmenus
try {
Statement statement = con.connection.createStatement();
String gget;
// Verkrijg het hoogste menu_id
gget = "SELECT max(afhaalmenus.menu_id) FROM afhaalmenus;";
ResultSet rs = statement.executeQuery(gget);
// Ga naar het laatste record in de Resultset
rs.last();
// Verhoog het hoogste menu_id met 1
this.menu_id = (rs.getInt(1)) + 1;
}
catch (Exception e) {
con.displaySQLErrors(e);
}
try {
// Insert statement opbouwen
// Ik maak gebruik van een prepared statement omdat dit veel overzichtelijker werkt
PreparedStatement sset = con.connection.prepareStatement("INSERT INTO afhaalmenus (menu_id,naam_gerecht,prijs,ingredienten,recept) VALUES (?,?,?,?,?)");
sset.setInt(1, this.menu_id); //Eerste parameter '?' is het menu_id welke wordt toegekend in het eerste stuk van de functie.
sset.setString(2, this.naam_gerecht); //Tweede parameter '?' is het naam_gerecht
sset.setString(3, this.prijs); //Derde parameter '?' is het prijs
sset.setString(4, this.ingredienten); //Vierde parameter '?' is het ingredienten
sset.setString(5, this.recept); //Vijfde parameter '?' is het recept
sset.executeUpdate();
}
catch (Exception e){
e.printStackTrace(); // Ik maak gebruik van de printstack om meer informatie te verkrijgen bij een exception
}
}
public void bewerkGerecht(int id) {
// Update het geselecteerde record in de tabel afhaalmenus
try
{
PreparedStatement sset = con.connection.prepareStatement("UPDATE afhaalmenus SET naam_gerecht = ?,prijs = ?,ingredienten = ?,recept = ? " +
"WHERE menu_id = ?");
sset.setString(1, this.naam_gerecht);
sset.setString(2, this.prijs);
sset.setString(3, this.ingredienten);
sset.setString(4, this.recept);
sset.setInt(5, id);
sset.executeUpdate();
}
catch(Exception e) {
e.printStackTrace(); // Ik maak gebruik van de printstack om meer informatie te verkrijgen bij een exception
}
}
}
KretaGUI class:
//Importeer bibliotheken
import javax.swing.*;
import java.util.Vector;
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.JPanel;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
// ************************************
public class KretaGUI {
// In deze class wordt de GUI en alle events (JButton en JList) opgebouwd
JFrame frame;
JButton bNieuw;
JButton bToevoegen;
JButton bBewerken;
JButton bWis;
JTextField tId;
JTextField tNaam_gerecht;
JTextField tPrijs;
JTextArea tRecept;
JTextArea tIngredienten;
JLabel lId;
JLabel lNaam_gerecht;
JLabel lPrijs;
JLabel lRecept;
JLabel lIngredienten;
JList gerechten;
public KretaGUI(){
Kreta kreta = new Kreta();
Vector tabel;
tabel = kreta.leesAlleGerechten();
frame = new JFrame("Afhaalmenus");
bNieuw = new JButton("Nieuw");
bNieuw.addActionListener(new bNieuwListener());
bToevoegen = new JButton("Toevoegen");
bToevoegen.addActionListener(new bToevoegenListener());
bBewerken = new JButton("Bewerken");
bBewerken.addActionListener(new bBewerkenListener());
bWis = new JButton("Wissen");
bWis.addActionListener(new bWisListener());
tId = new JTextField(3);
tId.setEditable(false); // Het veld ID mag niet handmatig worden aangepast
tNaam_gerecht = new JTextField(20);
tPrijs = new JTextField(20);
tRecept = new JTextArea(5,20);
tIngredienten = new JTextArea(5,20);
lId = new JLabel("Id:");
lNaam_gerecht = new JLabel("Naam:");
lPrijs = new JLabel("Prijs:");
lRecept = new JLabel("Recept:");
lIngredienten = new JLabel("Ingredienten:");
JPanel panelA = new JPanel(new FlowLayout(FlowLayout.LEFT)); //Plaats de buttons boven in het frame links uitgelijnd
JPanel panelB = new JPanel(); // Verzamel de textfields en textareas
JPanel panelC = new JPanel(); //JList
panelB.setLayout(new BoxLayout(panelB, BoxLayout.Y_AXIS)); //Plaats de labels en invoervelden onder elkaar
// opmaak JTextArea
JScrollPane sRecept = new JScrollPane(tRecept);
tRecept.setLineWrap(true);
sRecept.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
sRecept.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
JScrollPane sIngredienten = new JScrollPane(tIngredienten);
tIngredienten.setLineWrap(true);
sIngredienten.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
sIngredienten.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
// ***************************
panelA.add(bNieuw);
panelA.add(bToevoegen);
panelA.add(bBewerken);
panelA.add(bWis);
panelB.add(lId);
panelB.add(tId);
panelB.add(lNaam_gerecht);
panelB.add(tNaam_gerecht);
panelB.add(lPrijs);
panelB.add(tPrijs);
panelB.add(lRecept);
panelB.add(sRecept);
panelB.add(lIngredienten);
panelB.add(sIngredienten);
gerechten = new JList(tabel);
gerechten.addListSelectionListener(new LijstListener());
gerechten.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // Er kan maar 1 regel geselecteerd worden in de JList
gerechten.setSelectedIndex(-1); // Geen regel is geselecteerd
panelC.add(gerechten);
frame.getContentPane().add(BorderLayout.NORTH,panelA);
frame.getContentPane().add(BorderLayout.WEST,panelB);
frame.getContentPane().add(BorderLayout.EAST,panelC);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600,600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
public static void main(String[] args) {
KretaGUI afhaal = new KretaGUI();
}
class bNieuwListener implements ActionListener{
// Maak alle velden leeg en verwijder de selectie van de JList als er op nieuw wordt geklikt.
public void actionPerformed(ActionEvent event){
gerechten.clearSelection(); // Zorg ervoor dat er geen recepten meer geselecteerd zijn
tId.setText("");
tNaam_gerecht.setText("");
tPrijs.setText("");
tIngredienten.setText("");
tRecept.setText("");
tNaam_gerecht.requestFocus(); // Zet de focus in het veld naam
}
}
class bBewerkenListener implements ActionListener{
public void actionPerformed(ActionEvent event){
int Geselecteerd;
Geselecteerd = gerechten.getSelectedIndex(); // Bewaar de selectedindex van de JList
Kreta kreta = new Kreta();
kreta.setNaam_Gerecht(tNaam_gerecht.getText());
kreta.setPrijs(tPrijs.getText());
kreta.setIngredienten(tIngredienten.getText());
kreta.setRecept(tRecept.getText());
kreta.bewerkGerecht(Integer.parseInt(tId.getText()));
gerechten.setListData(kreta.leesAlleGerechten());
gerechten.repaint();
gerechten.setSelectedIndex(Geselecteerd); // Selecteer de rij in de JList van het huidige record
}
}
class bToevoegenListener implements ActionListener{
// Voeg het nieuwe gerecht toe aan de database (insert)
public void actionPerformed(ActionEvent event){
Kreta kreta = new Kreta();
kreta.setNaam_Gerecht(tNaam_gerecht.getText());
kreta.setPrijs(tPrijs.getText());
kreta.setIngredienten(tIngredienten.getText());
kreta.setRecept(tRecept.getText());
kreta.nieuwGerecht();
// Toon nieuwe menu_id in JTextfield tId
tId.setText(kreta.getId() + "");
// Vul de JList gerechten met de nieuwe data
gerechten.setListData(kreta.leesAlleGerechten());
gerechten.repaint();
}
}
// Deze Klasse roept wisRecept aan
class bWisListener implements ActionListener{
public void actionPerformed(ActionEvent event){
Kreta kreta = new Kreta();
kreta.wisGerecht(Integer.parseInt(tId.getText()));
gerechten.setListData(kreta.leesAlleGerechten());
gerechten.repaint();
gerechten.clearSelection(); // Zorg ervoor dat er geen recepten meer geselecteerd zijn
tId.setText("");
tNaam_gerecht.setText("");
tPrijs.setText("");
tIngredienten.setText("");
tRecept.setText("");
tNaam_gerecht.requestFocus(); // Zet de focus in het veld naam
;
}
}
class LijstListener implements ListSelectionListener
{
public void valueChanged(ListSelectionEvent e)
{
if (e.getValueIsAdjusting())
{
Kreta kreta = new Kreta();
try
{
int menu_id = Integer.parseInt(((Vector)gerechten.getSelectedValue()).elementAt(0).toString());
kreta.leesGerecht(menu_id);
//tfdMenuID.setText(getmenu_id() + "");
tId.setText(kreta.getId() + "");
tNaam_gerecht.setText(kreta.getNaam_Gerecht());
tPrijs.setText(kreta.getPrijs());
tIngredienten.setText(kreta.getIngredienten());
tRecept.setText(kreta.getRecept());
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null, ex.getMessage(), "Fout", JOptionPane.ERROR_MESSAGE);
}
}
}
}
}
Connectie class:
import java.sql.*;
import javax.swing.JOptionPane;
public class Connectie {
private String host = "localhost";
private String user = "root";
private String password = "";
private String databasenaam = "voorjava";
Connection connection;
public void displaySQLErrors(Exception e){
String error;
error = "SQL foutmelding: " + e.getMessage();
JOptionPane.showMessageDialog(null, error, "foutmelding", JOptionPane.ERROR_MESSAGE);
}
public Connectie(){
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
}catch(Exception e){
String error = "Niet mogelijk om de driver te laden";
JOptionPane.showMessageDialog(null, error, "foutmelding", JOptionPane.ERROR_MESSAGE);
System.exit(1);
}
try{
connection = DriverManager.getConnection("jdbc:mysql://"
+ this.host + "/"
+ this.databasenaam + "?user="
+ this.user
+ "&password=" + this.password);
String success = "Er is een connectie met de database";
JOptionPane.showMessageDialog(null,success, "success", JOptionPane.INFORMATION_MESSAGE);
} catch(Exception e) {
displaySQLErrors(e);
}
}
}