Avatar billede brianb Nybegynder
12. april 2008 - 19:40 Der er 12 kommentarer

Registrering af nummerplade på bil

Hej eksperter, jeg sidder her med en gui som skal kunne validere en nummerplade, men der er noget rod i min kode ved min RegEx validering når jeg trykker på valider, hvad gør jeg forkert?

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class valider extends JFrame implements ActionListener
{

        private JFrame frame = new JFrame();
        private JTextField text = new JTextField();
        private JTextArea area = new JTextArea();
        private JButton valider = new JButton("Validér");
        private JButton gem = new JButton("Gem");
       
        public valider()
        {
        frame.setTitle("Validering af nummerplader d(ò_Ó)b");
        frame.setSize(300,300);
        frame.setVisible(true);
       
        text.addActionListener(this);
        valider.addActionListener(this);
        gem.addActionListener(this);
       
        Container contentPane = frame.getContentPane();
        contentPane.setLayout(null);
        contentPane.add(text);
        contentPane.add(area);
        contentPane.add(gem);
        contentPane.add(valider);
        text.setBounds(40,10,150,20);
        area.setBounds(40,40,200,180);
        gem.setBounds(130,230,80,20);
        valider.setBounds(40,230,80,20);
        }
       
        public boolean checkPostnummer (String Regstring) {
             
            String RegEx = "[abc][abc][1-9][0-9][0-9][0-9][0-9]";
            result = Regstring.matches(RegEx);
            return result;
        }
       
        public void actionPerformed (ActionEvent e)
        {
            if (e.getSource() == gem)
              {
                if(text.getText() == "")
                {
                    text.setText("");
                }
                else
                  area.append(text.getText()+"\n");
                  text.setText("");
                  text.requestFocus();
              }
           
            if (e.getSource() == valider)
            {
                if(checkPostnummer() == true)
                {
                    area.append(text.getText());
                }
                else return;
            }
           
        }
}
Avatar billede arne_v Ekspert
12. april 2008 - 19:59 #1
Hvad sker der og hvad skal der ske ?
Avatar billede erikjacobsen Ekspert
12. april 2008 - 20:03 #2
Og det er bestemt ikke alle nummerplader i Danmark, der ser sådan ud, som dit regulære udtryk angiver - heller ikke hvis du får det ændret til [a-z] i stedet for [abc].
Avatar billede erikjacobsen Ekspert
12. april 2008 - 20:04 #3
Du kalder uden en parameter:  checkPostnummer()
men den kræver en parameter:  public boolean checkPostnummer (String Regstring) {
(og overvej et andet navn ...)
Avatar billede brianb Nybegynder
12. april 2008 - 20:09 #4
Arne_V

Jeg skal bare have valid funktionen til at tjekke om den er valid, er den ikke det skal den slettes fra textfeltet, eller skal den blive stående.

erikjacobsen

Indrømmet jeg snuppede lige checkpostnummer fordi jeg aldrig har brugt det før, og nej bilnummeret er ikke rigtigt, det kunne være hvad som helst jeg skulle lave, jeg vil bare lære at bruge det, derfor har jeg valgt at tage med biler.
Avatar billede arne_v Ekspert
12. april 2008 - 20:12 #5
Når du spørger om noget så beskriv hvad problemet er. "der er noget rod i min kode" er
meget lidt konkret. Fejl besked me dlinie nummer visning af hvilken linie det er
gør det meget nemmere.

Nu har Erik så spottet at din kode slet ikke compiler fordi der mangler et argument.
Avatar billede brianb Nybegynder
12. april 2008 - 20:17 #6
arne_v

For at være helt konkret er det eneste jeg er i tvivl om hvordan jeg får til at fungere dette her, jeg vil have den til at slette fra tekstfeltet hvis den IKKE er valid eller blive stående

if (e.getSource() == valider)
            {
                if(checkPostnummer() == true)
                {
                    area.append(text.getText());
                }
                else return;
            }
Avatar billede brianb Nybegynder
12. april 2008 - 20:18 #7
Alt andet er en solstrålehistorie, jeg er ny til Java, så derfor jeg er lidt noob.
Avatar billede arne_v Ekspert
12. april 2008 - 20:24 #8
text.setText("")

?
Avatar billede brianb Nybegynder
12. april 2008 - 21:23 #9
arne_v

if(text.getText() == "")
                {
                    text.setText("");
                }
                else

Kan også godt slettes, det var en test ;)
Avatar billede arne_v Ekspert
13. april 2008 - 02:24 #10
if(text.getText() == "")

bør laves som:

if(text.getText().equals(""))
Avatar billede brianb Nybegynder
13. april 2008 - 11:56 #11
arne_v nåja havde jeg glemt.

Men mit spørgsmål går mere på, hvordan jeg får omstruktureret

if (e.getSource() == valider)
            {
                if(checkPostnummer() == true)
                {
                    area.append(text.getText());
                }
                else return;
            }

Sådan så hvis checkPostnummer returerer true, så får den lov til at skrive i textfeltet
Avatar billede arne_v Ekspert
14. april 2008 - 00:41 #12
Hvad mener du ?

Du skriver i area og du skriver ikke i text.

Så hvad er det du vil have lov til ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester