anoniem Geplaatst: 10 juni 2007 Delen Geplaatst: 10 juni 2007 Dag mensen, ik heb het volgende probleem. Ik heb een simpel stuk code geschreven in java dat kijkt of een ingegeven getal een priemgetal is. Helaas voor mij doet hij het niet, kan een van jullie kijken wat hier fout aan is? Hier komt de complete code: [begin code] import java.awt.*; import java.applet.*; import java.awt.event.*; public class Priemgetallen extends Applet implements ActionListener { TextField invoer, uitvoer; private Button bereken; private int getal; Priem Priem1 = new Priem(20); Color kleur = new Color(10,10,10); public void init() { setLayout(null); TextField invoer = new TextField(20); add(invoer); invoer.setBounds(10,10,60,20); uitvoer = new TextField(20); add(uitvoer); uitvoer.setBounds(10, 40, 60,20); bereken = new Button("bereken"); add(bereken); bereken.addActionListener(this); bereken.setBounds(80,10,60,20); } public void actionPerformed (ActionEvent e) { if (e.getSource() == bereken) { getal = Integer.parseInt(invoer.getText()); Priem1 = new Priem(getal); if (Priem1.checkGetal()) uitvoer.setText("Dit is een priemgetal!"); else uitvoer.setText("Dit is geen priemgetal!"); } } } class Priem { private int priemgetal; private boolean Prime = true; public Priem (int priemgetal) { this.priemgetal = priemgetal; } public boolean checkGetal() { for (long i = 2;i < priemgetal && (Prime);i++) { if (priemgetal % i == 0) { Prime = false; break; } } if (priemgetal > 0 && priemgetal < 3) { Prime = true; } return Prime; } } [einde code] alvast bedankt! P.S. de jdk versie die ik probeer is JDK 1.6[/b] Quote Link naar reactie
anoniem Geplaatst: 11 juni 2007 Auteur Delen Geplaatst: 11 juni 2007 Zou je kunnen aangeven, wat hij niet doet. Dat maakt het zoeken wat eenvoudiger Quote Link naar reactie
anoniem Geplaatst: 11 juni 2007 Auteur Delen Geplaatst: 11 juni 2007 Hij compiled goed en als ik hem run doet hij het niet. Hij maakt de knop en de tekstvelden wel aan, maar hij functoneert niet. Als ik met de applet-viewer hem wil bekijken zegt hij dat het een nullpointer exception is, maar wat dat is snap ik niet goed. Misschien kun je hier verder mee. Quote Link naar reactie
anoniem Geplaatst: 11 juni 2007 Auteur Delen Geplaatst: 11 juni 2007 In de init-methode staat het volgende fragment: [code:1:bcf12e4917] TextField invoer = new TextField(20); [/code:1:bcf12e4917] Hiermee creëer je een nieuwe locale variabele genaamd 'invoer'. Deze zal dus binnen de init-methode de globale variable 'invoer' overschaduwen. Daardoor wordt de globale variabele 'invoer' niet geïnitialiseerd en blijft dus de waarde null houden. Dat zal vervolgens een nullpointer exception genereren tijdens de aanroep van de actionPerformed-methode. Kort gezegd: verander het fragment in: [code:1:bcf12e4917] invoer = new TextField(20); [/code:1:bcf12e4917] Dat zou moeten werken. edit: Overigens kun je, als je de applet in de browser laat draaien, ook de nullpointer exception terug vinden. Klik daarvoor op het Java-icoontje in de systray en kies voor 'show console' oid. Quote Link naar reactie
anoniem Geplaatst: 11 juni 2007 Auteur Delen Geplaatst: 11 juni 2007 Bedankt, het is opgelost! Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen