Results 1 to 6 of 6
  1. #1
    bodylojohn is offline Member
    Join Date
    Nov 2013
    Posts
    37
    Rep Power
    0

    Default Problems creating JApplet

    Hello,

    Finally I have a working Java Application containing 3 classes: Connection (Connectie), GUI (KretaGUI) and DatabaseActions (Kreta).

    Everything works like a charm but now I have to make a JApplet. And that's where the trouble starts. I play around with it but I just can't get it to work. When I get some layoutstuff in the applet the .ini file can't be read (because an applet doesn't allow file operations).
    This is driving me crazy. It's just part of an exercise that doesn't even get graded but I want to learn and understand how to make a JApplet.

    This is the working code:

    Connection class:
    Java Code:
    //Importeer bibliotheken
    import java.io.FileInputStream;
    import java.sql.*;
    import java.util.Properties;
    import javax.swing.JOptionPane;
    // ****************************
    
    public class Connectie {
    	// Definieer private variabelen benodigd voor de connectie
    	private String host;
    	private String user;
    	private String password;
    	private String databasenaam;
    
    	Connection connection;
    	
    	public void displaySQLErrors(Exception e) {
    		String error;
    		error = "SQL foutmelding: " + e.getMessage();
    		JOptionPane.showMessageDialog(null, error,"foutmelding",JOptionPane.ERROR_MESSAGE);
    	}
    	
    	public Connectie() {
    		// Lees het config.ini bestand in
    		this.LeesIniBestand();
    		
    		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 { // Bouw de connectiestring op
    			connection = DriverManager.getConnection("jdbc:mysql://" + this.host + "/" + 
    		this.databasenaam + "?user=" + this.user + "&password=" + this.password);
    			//String succes = "Er is een connectie met de database";
    			//JOptionPane.showMessageDialog(null, succes,"succes",JOptionPane.INFORMATION_MESSAGE);
    		}
    		catch(Exception e) {
    			displaySQLErrors(e);
    		}
    	}
    	
    	public void LeesIniBestand() {
    		try{
    	      Properties p = new Properties();
    	      p.load(new FileInputStream("config.ini")); //Het bestand config.ini staat in de root map van java
    	      //Vul de database variabelen met de gegevens uit het .ini bestand
    	      this.host = p.getProperty("host");
    	      this.user = p.getProperty("user");
    	      this.password = p.getProperty("password");
    	      this.databasenaam = p.getProperty("databasenaam");
    	      
    	      //Schrijf variabelen naar scherm ter controle
    	      System.out.println("Host = " + p.getProperty("host"));
    	      System.out.println("user = " + p.getProperty("user"));
    	      System.out.println("Password = " + p.getProperty("password"));
    	      System.out.println("databasenaam = " + p.getProperty("databasenaam"));
    	      }
    	    catch (Exception e) {
    	      System.out.println(e);
    	      }
    	    }
    }
    GUI class:
    Java Code:
    //Importeer bibliotheken
    import javax.swing.*;
    import java.util.Vector;
    import java.awt.*;
    import javax.swing.event.ListSelectionEvent;
    import javax.swing.event.ListSelectionListener;
    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();
    			// Indien het nieuwe record aan de tabel is toegevoegd dient de nieuwe regel in de JList geselecteerd te worden
    			int lastIndex = gerechten.getModel().getSize() - 1;
    			if (lastIndex >= 0) {
    				gerechten.setSelectedIndex(lastIndex);
    				}
    		}
    	}
    		
    	// 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);
                    }
                }
             }
        }
    }
    Database stuff class:
    Java Code:
    //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(){
    	try {
    		// Insert statement opbouwen
    		// Ik maak gebruik van een prepared statement omdat dit veel overzichtelijker werkt
    		// Met Statement.RETURN_GENERATED_KEYS krijg ik de nieuw aangemaakte menu_id terug
    		PreparedStatement sset = con.connection.prepareStatement("INSERT INTO afhaalmenus (naam_gerecht,prijs,ingredienten,recept) VALUES (?,?,?,?)",Statement.RETURN_GENERATED_KEYS);
    		sset.setString(1, this.naam_gerecht);	//Eerste parameter '?' is het naam_gerecht
    		sset.setString(2, this.prijs);			//Tweede parameter '?' is het prijs
    		sset.setString(3, this.ingredienten);	//Derde parameter '?' is het ingredienten
    		sset.setString(4, this.recept);			//Vierde parameter '?' is het recept
    		sset.executeUpdate();
    		ResultSet tableKeys = sset.getGeneratedKeys();
    		tableKeys.next();
    		this.menu_id = tableKeys.getInt(1);
    		}
    	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
        }
        }
    }
    I would be very gratefull if you guys could show me how to make a JApplet out of this.

    Thanks in advance!!!

    This is a cross post to http://www.javaprogrammingforums.com...tml#post138324
    Last edited by bodylojohn; 02-07-2014 at 09:56 AM.

  2. #2
    bodylojohn is offline Member
    Join Date
    Nov 2013
    Posts
    37
    Rep Power
    0

    Default Re: Problems creating JApplet

    Can anybody help with this applet please?

  3. #3
    Norm's Avatar
    Norm is offline Moderator
    Join Date
    Jun 2008
    Location
    Eastern Florida
    Posts
    17,899
    Rep Power
    25

    Default Re: Problems creating JApplet

    Please copy the full text of the error messages and paste it here.
    If you don't understand my response, don't ignore it, ask a question.

  4. #4
    bodylojohn is offline Member
    Join Date
    Nov 2013
    Posts
    37
    Rep Power
    0

    Default Re: Problems creating JApplet

    @Norm: The code is all there. I just need to make an applet of my code. And thats my problem.

  5. #5
    Norm's Avatar
    Norm is offline Moderator
    Join Date
    Jun 2008
    Location
    Eastern Florida
    Posts
    17,899
    Rep Power
    25

    Default Re: Problems creating JApplet

    Start by making a small applet for testing to see how an applet works.

    Then build your applet by replacing the GUI that uses a JFrame with the Container that is the applet.
    If you don't understand my response, don't ignore it, ask a question.

  6. #6
    bodylojohn is offline Member
    Join Date
    Nov 2013
    Posts
    37
    Rep Power
    0

    Default Re: Problems creating JApplet

    Finally...I have got my applet working...The only thing that doesnt work is reading the .ini file (java.io.FileNotFoundException: config.ini (The system cant find the file))

    However its part of the assignment to read the database settings from an .ini file.

    I hope I can finally complete mt assignement.

Similar Threads

  1. Problems with creating holes with bullet
    By javamix in forum New To Java
    Replies: 0
    Last Post: 05-13-2013, 04:23 AM
  2. Problems creating a bit displayer
    By cedron in forum New To Java
    Replies: 12
    Last Post: 06-10-2011, 10:38 AM
  3. Creating Snake Game: Few problems.
    By Nickv17 in forum New To Java
    Replies: 2
    Last Post: 01-21-2011, 05:59 AM
  4. JApplet problems
    By Rgfirefly24 in forum New To Java
    Replies: 2
    Last Post: 04-24-2008, 08:36 PM
  5. Problems while loading a JPanel to JApplet...
    By Ananth Chellathurai in forum Java Applets
    Replies: 0
    Last Post: 11-24-2007, 11:47 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •