Ga naar inhoud

Java een probleem


Aanbevolen berichten

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]
Link naar reactie
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.
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...