Leren uit een boek.

Status
Niet open voor verdere reacties.

Pinc

Gebruiker
Lid geworden
16 mei 2007
Berichten
9
.......niemand kunnen vragen.. een slecht idee bijna.:(
Ik ben bezig mij te verdiepen in JAVA. Leek mij simpel maar het valt tegen. Heb wel ervaring met VisualBasic 6.0 en dacht... och dat doe ik ff.:D

Nu heb ik een boek: En dan is er JAVA.. van Gertjan Laan.
De meeste opgaven gingen goed, nadat ik er soms een fout uitgehaald had. Maar nu staat er een fout in die ik niet kan plaatsen.

Op de bijgeleverde CD staat de code ook, maar die loopt ook niet.

Nu gaat het niet specifiek om de code maar zou ik graag willen weten of er nog iemand met hetzelfde boed bezig is. Misschien kom ik dan toch door het boek heen. Om nu WEER ander lesmateriaal te kopen.

Nu moet er een scherm komen die een optelling doet....
Code:
[COLOR="RoyalBlue"]import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Vb0307 extends JFrame
{
	public static void main( String[] args )
	{
		JFrame frame = new Vb0307();
		frame.setSize( 600, 200 );
		frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
		frame.setTitle(" Voorbeeld 0307" );
		frame.setContentPane( new Optelpaneel() );
		frame.setVisible( true );
	}
}
class Optelpaneel extends JPanel {

	private JTextField invoervak1, invoervak2, resultaatVak;
	private JButton plusKnop;
	
	public Optelpaneel() {
		invoervak1 = new JTextField ( 10 );
		invoervak2 = new JTextField ( 10 );
		resultaatVak = new JTextField( 10 );
		
		plusKnop = new JButton( "+" );
		plusKnop.addActionListener( new PlusKnopHandler() );
		
		add( invoervak1 );
		add( invoervak2 );
		add( plusKnop );
		add( resultaatVak);
	}
	Class PlusKnopHandler implements ActionListener {
		public void actionPerformed( ActionEvent e ) {
			String invoerstring1 = invoervak1.getText();
			int getal1 = Integer.parseInt( Invoerstring1 );
			
			String invoerstring2 = invoervak2.getText();
			int getal2 = Integer.parseInt( Invoerstring2 );
			
			int resultaat = getal1 + getal2;
			
			resultaatVak.setText("" + resultaat );
		}
	}
}
	[/COLOR]


Fout meldingen:
--------------------Configuration: Vb0307 - JDK version 1.6.0_03 <Default> - <Default>--------------------
C:\Java\JavaBeans\Vb0307\src\Vb0307.java:35: ';' expected
Class PlusKnopHandler implements ActionListener {
^
C:\Java\JavaBeans\Vb0307\src\Vb0307.java:35: <identifier> expected
Class PlusKnopHandler implements ActionListener {
^
C:\Java\JavaBeans\Vb0307\src\Vb0307.java:36: illegal start of expression
public void actionPerformed( ActionEvent e ) {
^
C:\Java\JavaBeans\Vb0307\src\Vb0307.java:48: class, interface, or enum expected
}
^
4 errors

Process completed.
 
Laatst bewerkt door een moderator:
Ik heb het op een iets andere manier opgezet:
Ik heb de action listener meteen in de JPanel geïmplementeert.
Hierdoor kan je de ActionPerformed in de class zelf definieëren.

Het enige wat nog wel dient te gebeuren is dat er nog een if/else in moet komen welke reageert op knop.

Code:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

public class Optelpaneel extends JPanel implements ActionListener {

    private JTextField invoervak1;
    private JTextField invoervak2;
    private JTextField resultaatVak;
    private JButton plusKnop;
    /** Creates new form Optelpaneel */
    public Optelpaneel() {
        initComponents();
        invoervak1 = new JTextField(10);
        invoervak2 = new JTextField(10);
        resultaatVak = new JTextField(10);

        plusKnop = new JButton("+");
        plusKnop.addActionListener(new PlusKnopHandler());

        add(invoervak1);
        add(invoervak2);
        add(plusKnop);
        add(resultaatVak);
        
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 400, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 300, Short.MAX_VALUE)
        );
    }// </editor-fold>
    public void actionPerformed(ActionEvent e) {
        
        String invoerstring1 = invoervak1.getText();
        int getal1 = Integer.parseInt(invoerstring1);

        String invoerstring2 = invoervak2.getText();
        int getal2 = Integer.parseInt(invoerstring2);

        int resultaat = getal1 + getal2;

        resultaatVak.setText("" + resultaat);
    }
    // Variables declaration - do not modify
    // End of variables declaration
}


In deze class maakte jij de frame 2x aan.
1: als je de class zelf aanmaakt
2: in de contructor van de class.
Dit is onnodig geheugengebruik
Code:
public class VB0307 extends javax.swing.JFrame {

    /** Creates new form VB0307 */
    public VB0307() {
        initComponents();
        this.setSize(600, 200);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setTitle(" Voorbeeld 0307");
        this.setContentPane(new Optelpaneel());
        this.setVisible(true);
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 400, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 300, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new VB0307().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify
    // End of variables declaration
}

Ik heb het boek niet, maar als je vragen hebt dan kan je ze hier op het forum gewoon stellen.
 
Laatst bewerkt:
Mooi

Ik ga het vanavond direct uitproberen... (zal wel vannacht worden).
Want ik wil het natuurlijk ook helemaal snappen wat ik doe want ik moet de uitgave nog uitbreiden.

Alvast bedankt....
 
.......niemand kunnen vragen.. een slecht idee bijna.:(
Ik ben bezig mij te verdiepen in JAVA. Leek mij simpel maar het valt tegen. Heb wel ervaring met VisualBasic 6.0 en dacht... och dat doe ik ff.:D

Nu heb ik een boek: En dan is er JAVA.. van Gertjan Laan.
De meeste opgaven gingen goed, nadat ik er soms een fout uitgehaald had. Maar nu staat er een fout in die ik niet kan plaatsen.

Op de bijgeleverde CD staat de code ook, maar die loopt ook niet.

Nu gaat het niet specifiek om de code maar zou ik graag willen weten of er nog iemand met hetzelfde boed bezig is. Misschien kom ik dan toch door het boek heen. Om nu WEER ander lesmateriaal te kopen.

Nu moet er een scherm komen die een optelling doet....
Code:
[COLOR="RoyalBlue"]import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Vb0307 extends JFrame
{
	public static void main( String[] args )
	{
		JFrame frame = new Vb0307();
		frame.setSize( 600, 200 );
		frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
		frame.setTitle(" Voorbeeld 0307" );
		frame.setContentPane( new Optelpaneel() );
		frame.setVisible( true );
	}
}
class Optelpaneel extends JPanel {

	private JTextField invoervak1, invoervak2, resultaatVak;
	private JButton plusKnop;
	
	public Optelpaneel() {
		invoervak1 = new JTextField ( 10 );
		invoervak2 = new JTextField ( 10 );
		resultaatVak = new JTextField( 10 );
		
		plusKnop = new JButton( "+" );
		plusKnop.addActionListener( new PlusKnopHandler() );
		
		add( invoervak1 );
		add( invoervak2 );
		add( plusKnop );
		add( resultaatVak);
	}
	Class PlusKnopHandler implements ActionListener {
		public void actionPerformed( ActionEvent e ) {
			String invoerstring1 = invoervak1.getText();
			int getal1 = Integer.parseInt( Invoerstring1 );
			
			String invoerstring2 = invoervak2.getText();
			int getal2 = Integer.parseInt( Invoerstring2 );
			
			int resultaat = getal1 + getal2;
			
			resultaatVak.setText("" + resultaat );
		}
	}
}
	[/COLOR]


Fout meldingen:
--------------------Configuration: Vb0307 - JDK version 1.6.0_03 <Default> - <Default>--------------------
C:\Java\JavaBeans\Vb0307\src\Vb0307.java:35: ';' expected
Class PlusKnopHandler implements ActionListener {
^
C:\Java\JavaBeans\Vb0307\src\Vb0307.java:35: <identifier> expected
Class PlusKnopHandler implements ActionListener {
^
C:\Java\JavaBeans\Vb0307\src\Vb0307.java:36: illegal start of expression
public void actionPerformed( ActionEvent e ) {
^
C:\Java\JavaBeans\Vb0307\src\Vb0307.java:48: class, interface, or enum expected
}
^
4 errors

Process completed.

Ik ben met hetzelfde boek bezig. Misschien kunnen we inderdaad elkaar een beetje helpen. Dat is meestal wel fijner werken met Javaproggrammeren.
 
Nog een lotgenoot...

.. bedankt voor jullie reacties... Nog geen tijd gehad de code uit te proberen.... maar dat komt nog wel.
Was een beetje laat maar ik was een paar daagjes in de lappenmand.
 
Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Vb0307 extends JFrame{
	public static void main( String[] args ){
		JFrame frame = new Vb0307();
		frame.setSize( 600, 200 );
		frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
		frame.setTitle(" Voorbeeld 0307" );
		frame.setContentPane( new Optelpaneel() );
		frame.setVisible( true );
	}//main
}

class Optelpaneel extends JPanel {

	private JTextField invoervak1, invoervak2, resultaatVak;
	private JButton plusKnop;
	
	public Optelpaneel(){
		invoervak1 = new JTextField ( 10 );
		invoervak2 = new JTextField ( 10 );
		resultaatVak = new JTextField( 10 );
		
		plusKnop = new JButton( "+" );
		plusKnop.addActionListener( new PlusKnopHandler() );
		
		add( invoervak1 );
		add( invoervak2 );
		add( plusKnop );
		add( resultaatVak);
	}//constructor
	
	class PlusKnopHandler implements ActionListener {
		public void actionPerformed( ActionEvent e ) {
			String invoerstring1 = invoervak1.getText();
			int getal1 = Integer.parseInt( invoerstring1 );
			
			String invoerstring2 = invoervak2.getText();
			int getal2 = Integer.parseInt( invoerstring2 );
			
			int resultaat = getal1 + getal2;
			
			resultaatVak.setText("" + resultaat );
		}
	}
}

paar kleine foutjes die verbeterd zijn (class ipv Class). Hou rekening met hoofdlettergevoeligheid. Code werkt hierzo
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan