Avatar billede saxtus Nybegynder
11. december 2003 - 22:08 Der er 9 kommentarer og
1 løsning

validering på input felter i java program

Jeg har nogle indput felter som jeg gerne vil have valideret, en til tekst+tal og en til tal.
der ud over vil jeg gerne vide hvordan jeg får sat værdierne ind i mine "set.variabel()"
Avatar billede repsak Nybegynder
11. december 2003 - 22:12 #1
hmm du skal nok uddybe lidt
Avatar billede repsak Nybegynder
11. december 2003 - 22:13 #2
denne kode kontrollerer om en streng kan konverteres til et tal
int i = Integer.parseInt("12");

der opstår en exception hvis strengen ikke kan parses
Avatar billede saxtus Nybegynder
11. december 2003 - 22:31 #3
Jeg har lavet en brugergrænseflade, men kan ikke lige hitte ud af at få mine input ud af den, her er koden for den

class opretBio extends JDialog
{
    public opretBio()
    {
        jLabel1 = new JLabel();
        jButton1 = new JButton();
        jLabel2 = new JLabel();
        jLabel3 = new JLabel();
        jLabel4 = new JLabel();
        jTextField1 = new JTextField();
        jTextField2 = new JTextField();
        jTextField3 = new JTextField();

        getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
        ImageIcon icon = new ImageIcon("icon.gif");
        setIcon();
        setTitle("Opret Biografsal");
       

        jLabel1.setFont(new java.awt.Font("Verdana", 1, 18));
        jLabel1.setText("Opret Biografsal");
        getContentPane().add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 10, 300, 30));

        jButton1.setFont(new java.awt.Font("Verdana", 1, 14));
        jButton1.setText("Opret biografsal");
        getContentPane().add(jButton1, new org.netbeans.lib.awtextra.AbsoluteConstraints(160, 170, 170, 30));

        jLabel2.setFont(new java.awt.Font("Verdana", 1, 14));
        jLabel2.setText("Biograf navn");
        getContentPane().add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 50, 140, 30));

        jLabel3.setFont(new java.awt.Font("Verdana", 1, 14));
        jLabel3.setText("Antal r\u00e6kker");
        getContentPane().add(jLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 90, 140, 30));

        jLabel4.setFont(new java.awt.Font("Verdana", 1, 14));
        jLabel4.setText("Antal s\u00e6der");
        getContentPane().add(jLabel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 130, 140, 30));
       
        jTextField1.setFont(new java.awt.Font("Verdana", 0, 14));
        getContentPane().add(jTextField1, new org.netbeans.lib.awtextra.AbsoluteConstraints(160, 50, 170, 30));
       
        jTextField2.setFont(new java.awt.Font("Verdana", 0, 14));
        getContentPane().add(jTextField2, new org.netbeans.lib.awtextra.AbsoluteConstraints(160, 90, 170, 30));
       
        jTextField3.setFont(new java.awt.Font("Verdana", 0, 14));
        getContentPane().add(jTextField3, new org.netbeans.lib.awtextra.AbsoluteConstraints(160, 130, 170, 30));

        pack();
       
        setSize(400, 285);
        setLocationRelativeTo(this);
    }
    private void opretBiogarf(java.awt.event.ActionEvent evt) {
    //BiografSal s = new BiografSal();
    s.setBiografNavn();
    s.opretBiograf();*/
    }   
       
    private JButton jButton1;
    private JLabel jLabel1;
    private JLabel jLabel2;
    private JLabel jLabel3;
    private JLabel jLabel4;
    private JTextField jTextField1;
    private JTextField jTextField2;
    private JTextField jTextField3;
}
Avatar billede saxtus Nybegynder
11. december 2003 - 22:34 #4
jeg skal have teksten ud fra jTextField1, jTextField2, jTextField3.
I jTextField2+3 må der kun stå tal, og i jTextField1 både tal og tekst.

Havde det bare været javascript, så havde jeg haft koderne selv, men stadig ingen anelse om hvordna jeg får fat i de indtastede værdier :)
Avatar billede repsak Nybegynder
11. december 2003 - 22:39 #5
string s1 = jTextField1.getText(); //ingen validering
string s2 = jTextField2.getText();
int i2 = Integer.parseInt(s2); //hvis der opstår fejl er s1 ikke et tal
string s3 = jTextField3.getText();
int i3 = Integer.parseInt(s3);
Avatar billede saxtus Nybegynder
11. december 2003 - 22:47 #6
tester lige
Avatar billede arne_v Ekspert
11. december 2003 - 22:57 #7
Som metode:

    private static boolean isInt(String s) {
        try {
            Integer.parseInt(s);
            return true;
        } catch (NumberFormatException e) {
            return false;
        }
    }

eller måske bedre:

    private static boolean isInt(String s) {
        for (int j = 0; j < s.length(); j++) {
            if (!Character.isDigit(s.charAt(j))) {
                return false;
            }
        }
        return true;
    }
Avatar billede saxtus Nybegynder
12. december 2003 - 13:17 #8
de indtastede værdier skal også lige undersøges om de er tomme - altså giver null værdi
Avatar billede repsak Nybegynder
12. december 2003 - 13:19 #9
tomme:
if(t3.getText().equals("")) //så er den tom

den kan aldrig blive null!
(men ellers skulle det skrives som: if(t3.getText == null))
Avatar billede repsak Nybegynder
12. december 2003 - 13:20 #10
if(t3.getText == null)) -> if(t3.getText() == null)
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