Record verwijderen/wijzigen uit JTable

Status
Niet open voor verdere reacties.

deefken

Nieuwe gebruiker
Lid geworden
18 mei 2010
Berichten
4
We hebben enkele probleempjes met ons project voor school. Het is niet dat we hier de volledige oplossing verwachten maar het moet morgen af dus we zitten echt vast :(

Het gaat over het volgende:

We willen dus data die in een JTable staat (en die er gekomen is via MySQL) verwijderen door op een knop te klikken. Het gaat over volgende code:

Code:
public void btnVerwijderenActionPerformed()
	{
		int rij = resultTable.getSelectedRow();
		int kolom = resultTable.getSelectedColumn();
		System.out.println("rij: " + rij + ", kolom: " + kolom);
		
		int kindID = Integer.parseInt((String)resultTable.getValueAt(rij, 0));
		System.out.println(kindID);
		
		if(kindID == 0)
		{
			JOptionPane.showMessageDialog(null, "Er is een probleem opgetreden tijdens het verwijderen.", "Fout", JOptionPane.ERROR_MESSAGE);
		}
		else
		{
			JOptionPane.showMessageDialog(null, "Weet u zeker dat dit sportkamp wilt verwijderen?", "Sportkamp verwijderd", JOptionPane.YES_NO_OPTION);
			domeinController.verwijderKind(kindID);
			updateGUI(tableModel);
		}
		updateGUI(tableModel);
	}

hier geeft hij jammergenoeg een class(of cast denk ik:o) exception op het lijntje van de intKindID = Integer.parseInt......... In onze tabel in MySQL is dit een int type (voor moest dit interessant zijn om te weten) Weet iemand hoe we dit kunnen oplossen want volgens mij is er aan de code niet veel fout :(

Een 2de probleem is het volgende:

We willen in dezelfde JTable een record aanklikken (deze JTable staat in een JPanel) en vervolgens na het klikken een JFrame openen waarin de gegevens van dit desbetreffende record automatisch opgevuld worden in de overeenkomstige textboxen. Tot nu toe hebben we hiervoor volgende code:

Code:
package gui;

import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.GregorianCalendar;
import java.util.List;

import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.WindowConstants;

import domein.DatumComboboxModel;
import domein.DomeinController;
import domein.Kind;
import domein.Sportkamp;

public class WijzigSportkampJFrame extends JFrame
{
	private JLabel lblSportkampNummer;
	private JTextField txtSportkampNummer;
	private JLabel lblNaam;
	private JTextField txtNaam;
	private JLabel lblBegeleider;
	private JTextField txtBegeleider;
	private JLabel lblBegindatum;
	private JComboBox cbbBegindatumDag;
	private JComboBox cbbBegindatumMaand;
	private JComboBox cbbBegindatumJaar;
	private JLabel lblEinddatum;
	private JComboBox cbbEinddatumDag;
	private JComboBox cbbEinddatumMaand;
	private JComboBox cbbEinddatumJaar;
	private JLabel lblBeginleeftijd;
	private JTextField txtBeginleeftijd;
	private JLabel lblEindleeftijd;
	private JTextField txtEindleeftijd;
	private JLabel lblMaxAantaldeelnemers;
	private JTextField txtMaxAantaldeelnemers;
	private JLabel lblPrijs;
	private JTextField txtPrijs;
	private JButton btnOK;
	
	DomeinController controller;
	
	
	private TabelSportkampJPanel tsjp;
	String sportkampID = "";
	
	
	public WijzigSportkampJFrame(TabelSportkampJPanel tsjp)
	{
		super("Sportkamp wijzigen");
		controller = new DomeinController();
		this.tsjp = tsjp;
		initGUI();
	}

	private void initGUI()
	{
		try
		{
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(null);
			pack();
			setSize(W, H);
			middenScherm();
			{
				lblSportkampNummer = new JLabel();
				this.add(lblSportkampNummer);
				lblSportkampNummer.setText("SportkampNummer:");
				lblSportkampNummer.setBounds(39, 61, 158, 24);
			}
			{
				txtSportkampNummer = new JTextField();
				this.add(txtSportkampNummer);
				txtSportkampNummer.setBounds(209, 61, 137, 25);
			}
			{
				lblNaam = new JLabel();
				getContentPane().add(lblNaam);
				lblNaam.setText("Naam:");
				lblNaam.setBounds(39, 97, 158, 24);
			}
			{
				txtNaam = new JTextField();
				getContentPane().add(txtNaam);
				txtNaam.setBounds(209, 97, 137, 25);
			}
			{
				lblBegeleider = new JLabel();
				getContentPane().add(lblBegeleider);
				lblBegeleider.setText("Begeleider:");
				lblBegeleider.setBounds(39, 134, 158, 24);
			}
			{
				txtBegeleider = new JTextField();
				getContentPane().add(txtBegeleider);
				txtBegeleider.setBounds(209, 134, 137, 25);
			}
			{
				lblBegindatum = new JLabel();
				this.add(lblBegindatum);
				lblBegindatum.setText("Begindatum:");
				lblBegindatum.setBounds(39, 170, 158, 24);
			}
			{
				ComboBoxModel cbbBegindatumDagModel = 
					new DefaultComboBoxModel(
							new String[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31" });
				cbbBegindatumDag = new JComboBox();
				this.add(cbbBegindatumDag);
				cbbBegindatumDag.setModel(cbbBegindatumDagModel);
				cbbBegindatumDag.setBounds(209, 171, 39, 23);
			}
			{
				ComboBoxModel cbbBegindatumMaandModel = 
					new DefaultComboBoxModel(
							new String[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12" });
				cbbBegindatumMaand = new JComboBox();
				this.add(cbbBegindatumMaand);
				cbbBegindatumMaand.setModel(cbbBegindatumMaandModel);
				cbbBegindatumMaand.setBounds(248, 171, 42, 23);
			}
			{
				cbbBegindatumJaar = new JComboBox();
				this.add(cbbBegindatumJaar);
				cbbBegindatumJaar.setModel(new DatumComboboxModel());
				cbbBegindatumJaar.setBounds(290, 171, 56, 23);
			}
			{
				lblEinddatum = new JLabel();
				getContentPane().add(lblEinddatum);
				lblEinddatum.setText("Einddatum:");
				lblEinddatum.setBounds(39, 207, 158, 24);
			}
			{
				ComboBoxModel cbbEinddatumDagModel = 
					new DefaultComboBoxModel(
							new String[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31" });
				cbbEinddatumDag = new JComboBox();
				getContentPane().add(cbbEinddatumDag);
				cbbEinddatumDag.setModel(cbbEinddatumDagModel);
				cbbEinddatumDag.setBounds(209, 209, 39, 21);
			}
			{
				ComboBoxModel cbbEinddatumMaandModel = 
					new DefaultComboBoxModel(
							new String[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12" });
				cbbEinddatumMaand = new JComboBox();
				getContentPane().add(cbbEinddatumMaand);
				cbbEinddatumMaand.setModel(cbbEinddatumMaandModel);
				cbbEinddatumMaand.setBounds(248, 209, 42, 21);
			}
			{
				cbbEinddatumJaar = new JComboBox();
				this.add(cbbEinddatumJaar);
				cbbEinddatumJaar.setModel(new DatumComboboxModel());
				cbbEinddatumJaar.setBounds(290, 209, 56, 21);
			}
			{
				lblMaxAantaldeelnemers = new JLabel();
				this.add(lblMaxAantaldeelnemers);
				lblMaxAantaldeelnemers.setText("Max aantal deelnemers:");
				lblMaxAantaldeelnemers.setBounds(39, 243, 158, 24);
			}
			{
				txtMaxAantaldeelnemers = new JTextField();
				this.add(txtMaxAantaldeelnemers);
				txtMaxAantaldeelnemers.setBounds(209, 243, 137, 25);
			}
			{
				lblBeginleeftijd = new JLabel();
				this.add(lblBeginleeftijd);
				lblBeginleeftijd.setText("Beginleeftijd:");
				lblBeginleeftijd.setBounds(39, 280, 158, 24);
			}
			{
				txtBeginleeftijd = new JTextField();
				this.add(txtBeginleeftijd);
				txtBeginleeftijd.setBounds(209, 279, 137, 25);
			}
			{
				lblEindleeftijd = new JLabel();
				this.add(lblEindleeftijd);
				lblEindleeftijd.setText("Eindleeftijd:");
				lblEindleeftijd.setBounds(39, 316, 158, 24);
			}
			{
				txtEindleeftijd = new JTextField();
				this.add(txtEindleeftijd);
				txtEindleeftijd.setBounds(209, 316, 137, 25);
			}
			{
				lblPrijs = new JLabel();
				this.add(lblPrijs);
				lblPrijs.setText("Prijs:");
				lblPrijs.setBounds(39, 353, 158, 24);
			}
			{
				txtPrijs = new JTextField();
				this.add(txtPrijs);
				txtPrijs.setBounds(209, 353, 137, 25);
			}
			{
				btnOK = new JButton();
				this.add(btnOK);
				btnOK.setText("OK");
				btnOK.setBounds(206, 415, 68, 25);
				btnOK.addActionListener(new ActionListener()
				{
					public void actionPerformed(ActionEvent evt)
					{
						btnOKActionPerformed(evt);
					}
				});
			}
			{
				JPanel jPanel = new JPanel();
				getContentPane().add(jPanel);
				jPanel.setBounds(0, 2, 384, 460);
				ImageIcon icon = new ImageIcon(".\\images\\nieuwsportkampachtergrond.jpg");
				JLabel label = new JLabel(); 
				label.setIcon(icon); 
				jPanel.add(label);
			}
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}
	}
	
	private void btnOKActionPerformed(ActionEvent evt)
	{
		if(controles())
		{
			String sportkampnr = tsjp.rijSportkamp(sportkampID);
			Sportkamp sk = controller.getSportkamp(sportkampnr);
			
			String sportkampnummer = txtSportkampNummer.setText(sk.getSportkampID());
			String naam = txtNaam.setText(sk.getNaam());
			String begeleider = txtBegeleider.setText(sk.getBegeleider());
			
			int begindatumDag = Integer.parseInt((String)cbbBegindatumDag.getSelectedItem());
			int begindatumMaand = Integer.parseInt((String)cbbBegindatumMaand.getSelectedItem());
			int begindatumJaar = Integer.parseInt((String)cbbBegindatumJaar.getSelectedItem()); //datum.getSelectedDatum();
			int einddatumDag = Integer.parseInt((String)cbbEinddatumDag.getSelectedItem());
			int einddatumMaand = Integer.parseInt((String)cbbEinddatumMaand.getSelectedItem());
			int einddatumJaar = Integer.parseInt((String)cbbEinddatumJaar.getSelectedItem()); //datum.getSelectedDatum();
			int maxAantalDeelnemers = Integer.parseInt(txtMaxAantaldeelnemers.getText());
			int beginleeftijd = Integer.parseInt(txtBeginleeftijd.getText());
			int eindleeftijd = Integer.parseInt(txtEindleeftijd.getText());
			double prijs = Integer.parseInt(txtPrijs.getText());
			
			GregorianCalendar begindatum = controller.maakDatum(begindatumJaar, begindatumMaand, begindatumDag);
			GregorianCalendar einddatum = controller.maakDatum(einddatumJaar, einddatumMaand, einddatumDag);
			
			Sportkamp sportkamp = new Sportkamp(sportkampnummer, naam, begeleider, begindatum, einddatum, maxAantalDeelnemers, beginleeftijd, eindleeftijd, prijs);
			if(controller.wijzigSportkamp(sportkamp))
				JOptionPane.showMessageDialog(null, "Het sportkamp werd gewijzigd", "Sportkamp gewijzigd", JOptionPane.INFORMATION_MESSAGE);
			else
				JOptionPane.showMessageDialog(null, "Er is een probleem opgetreden bij het wijzigen", "Probleem bij wijzigen", JOptionPane.ERROR_MESSAGE);
		}
	}
	
	//controles op invoer
	public boolean controles()
	{
		try
		{
			Integer.parseInt(txtSportkampNummer.getText());
			Integer.parseInt(txtMaxAantaldeelnemers.getText());
			Integer.parseInt(txtBeginleeftijd.getText());
			Integer.parseInt(txtEindleeftijd.getText());
			
			if(txtSportkampNummer.getText().equals(""))
			{
				JOptionPane.showMessageDialog(null, "Gelieve een sportkampnummer in te geven!");
			}
			if(txtNaam.getText().equals(""))
			{
				JOptionPane.showMessageDialog(null, "Gelieve een sportkampnaam in te geven!");
			}
			if(txtBegeleider.getText().equals(""))
			{
				JOptionPane.showMessageDialog(null, "Gelieve een begeleider in te geven!");
			}
			if(txtMaxAantaldeelnemers.getText().equals(""))
			{
				JOptionPane.showMessageDialog(null, "Gelieve het maximum aantal deelnemers in te geven!");
			}
			if(txtBeginleeftijd.getText().equals(""))
			{
				JOptionPane.showMessageDialog(null, "Gelieve een beginleeftijd in te geven!");
			}
			if(txtEindleeftijd.getText().equals(""))
			{
				JOptionPane.showMessageDialog(null, "Gelieve een eindleeftijd in te geven!");
			}
		}
		catch(NumberFormatException nfe)
		{
			JOptionPane.showMessageDialog(null, "Sportkampnummer, maximum aantal deelnemers, begin- en eindleeftijd moeten numeriek zijn!");
		}
		catch(Exception e)
		{
			JOptionPane.showMessageDialog(null, "Gelieve alle velden in te vullen!");
		}
		return true;
	}
	
	// venster in het midden van het scherm plaatsen
	private final int W=400,H=500;
	
	public void middenScherm()
	{
		Dimension d = this.getToolkit().getScreenSize();
		int height = (d.height / 2)- (H / 2);
		int width = (d.width / 2) - (W / 2);
		setLocation(width,height);
	}
}

maar hier geeft hij fouten op het vetgezette deeltje :( we zijn beginners in JAVA, maar dit project moet morgen afgegeven worden. De oplossingen voor deze 2 kleine foutjes zullen veeel voor ons betekenen! Alle hulp of vragen zijn welkom!

Ik wil niet zielig doen maar het is echt van heeeeel groot belang.

Bedankt op voorhand en als er iets niet duidelijk is vraag het maar!

Groeten Deefken
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan