Vraag & Antwoord

Programmeren

Java een probleem

4 antwoorden
  • 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]
  • Zou je kunnen aangeven, wat hij niet doet. Dat maakt het zoeken wat eenvoudiger
  • 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.
  • 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.

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.