Toon posts:

[JAVA] iemand bekend met password fields??

Pagina: 1
Acties:

Verwijderd

Topicstarter
heej,

ik wil een password field gebruiken weet iemand hoe dit werkt?

ik wil namelijk een inlog scherm hebben, waarbij verschillende users verschillende schermen te zien krijgen...

sorry voor de beperkte info als je meer moet weten, gewoon effe posten dus... (ik ben nl een java leek dus ik weet niet wat je hierbij nodig hebt...)

gr jack

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Als je Swing gebruikt kan je een JPasswordField gebruiken. Je kunt alle benodigde info vinden in de API documentie...

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Bedoel je dat je mooie sterretjes in je tekstvak krijgt ipv de ingetypte characters?

Gewoon een textvak nemen en deze met setEchoChar(char c); setten
public void setEchoChar(char c)
Sets the echo character for this text field.
An echo character is useful for text fields where user input should not be echoed to the screen, as in the case of a text field for entering a password. Setting echoChar = 0 allows user input to be echoed to the screen again.
(hoewel Swing mooier is :P)

[edit] ff typo verbeterd (function name error :P)

Verwijderd

Topicstarter
echochar() kentie nie.... wel bij een password field...

waar kan ik die api documentatie vinden??

thanx

jack

  • MisterData
  • Registratie: September 2001
  • Laatst online: 07-09 20:23

Verwijderd

Topicstarter
en bedankt!!

Verwijderd

Topicstarter
dit is mijn code tot nu toe:

package oldtimer;

import java.awt.*;
import com.borland.jbcl.layout.*;
import javax.swing.*;
import com.borland.jbcl.control.*;
import java.awt.event.*;
import javax.swing.*;

/**
* Title:
* Description:
* Copyright: Copyright (c) 2001
* Company:
* @author
* @version 1.0
*/

public class FrDoLogin extends JFrame {
XYLayout xYLayout1 = new XYLayout();
JTextField jTextFieldNaam = new JTextField();
JLabel jLabel1 = new JLabel();
JLabel jLabel2 = new JLabel();
JPasswordField jPassword = new JPasswordField();
String naam = jTextFieldNaam.getText();
Frame frWPR = new FrWPR();


private static boolean isPasswordCorrect(char[] input) {
char[] correctPassword = { 'b', 'u', 'g', 'a', 'b', 'o', 'o' };
if (input.length != correctPassword.length)
return false;
for (int i = 0; i < input.length; i ++)
if (input[i] != correctPassword[i])
return false;
return true;
}
public FrDoLogin() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
public void jbInit() throws Exception {
this.getContentPane().setBackground(new Color(0, 0, 164));
this.getContentPane().setLayout(xYLayout1);
jLabel1.setFont(new java.awt.Font("Dialog", 1, 12));
jLabel1.setForeground(Color.white);
jLabel1.setText("Naam");
jLabel2.setText("Paswoord");
jLabel2.setForeground(Color.white);
jLabel2.setFont(new java.awt.Font("Dialog", 1, 12));

xYLayout1.setWidth(368);
xYLayout1.setHeight(88);
jPassword.addActionListener(new java.awt.event.ActionListener()

{
public void actionPerformed(ActionEvent e)
{
JPasswordField jPassword = (JPasswordField)e.getSource();
char[] password = jPassword.getPassword();
if (isPasswordCorrect(password))
{
JOptionPane.showMessageDialog(frWPR,"Success! You typed the right password.");
}

else
{
JOptionPane.showMessageDialog(frWPR,"Invalid password. Try again.","Error Message", JOptionPane.ERROR_MESSAGE);

}
}
});
JPanel contentPane = new JPanel(new BorderLayout());
contentPane.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));

contentPane.add(jPassword, BorderLayout.CENTER);

frWPR.setContentPane(contentPane);
frWPR.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) { System.exit(0); }
});
frWPR.pack();
frWPR.setVisible(true);

this.getContentPane().add(jTextFieldNaam, new XYConstraints(108, 11, 244, 24));
this.getContentPane().add(jLabel1, new XYConstraints(12, 10, 56, 26));
this.getContentPane().add(jLabel2, new XYConstraints(12, 51, 67, 26));
this.getContentPane().add(jPassword, new XYConstraints(107, 51, 244, 24));
}




}


en hier zit hem de fout:

frWPR.setContentPane(contentPane);

deze methode kent ie niet... en ik weet echt niet wat ie zou moeten doen....

gr jack

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Je loopt ten 1e al erg in de jbuilder code te rommelen. Welke versie gebruik je? Want die actionListener code invullen in de jbinit is wel heel slecht. En dan nog een keer een frame opbouwen in code ipv even een frame extenden. En volgens mij komen de invullers van slechte en goede password bij jouw ein scherm uit. Ik zal me nu eens bezig houden met de 'echte' fout.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

een Frame is een AWT component en jij probeerd er een Swing component op te plaatsen. Vind ie niet zo leuk Een setContentPane zal dit oude AWT beestje ook wel niet kennen :) Het is meestal wel makkelijk om de sun docs bij de hand te hebben (of een goeie ide).

advies: netter leren proggen, dit is een nachtmerrie om te onderhouden en te bekijken.

advies2: als je te veel aan jbuilder code rommelt dan kan hij het niet meer inlezen en zit je met de gebakken peren.

advies3: niet met jbuilder proggen maar eerst eens alles met de hand doen, dan weet je hoe het werkt.

Verwijderd

Topicstarter
ja erg slecht voor een 2dejaars informatica student he....

maar hoe moet het dan??

gr jack

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Op donderdag 20 december 2001 22:55 schreef El_Jacko het volgende:
ja erg slecht voor een 2dejaars informatica student he....

maar hoe moet het dan??

gr jack
Ik zou liegen als ik zei dat het niet zo was :) Quick fix, maak van de Frame een JFrame en probeer het nog eens.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

simpel voorbeeld..
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package com.borland.samples.welcome;

import java.awt.*;
import javax.swing.*;
import com.borland.jbcl.layout.*;
import java.awt.event.*;

/**
 * Title:     
 * Description:  
 * Copyright:    Copyright (c) 2001
 * Company: 
 * @author 
 * @version 1.0
 */

public class Frame1 extends JFrame {
  XYLayout xYLayout1 = new XYLayout();
  JPasswordField jPasswordField1 = new JPasswordField();

  public Frame1() {
    try {
    jbInit();
    }
    catch(Exception e) {
    e.printStackTrace();
    }
  }
  private void jbInit() throws Exception {
    jPasswordField1.setText("jPasswordField1");
    jPasswordField1.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(ActionEvent e) {
      jPasswordField1_actionPerformed(e);
    }
    });
    this.getContentPane().setLayout(xYLayout1);
    this.getContentPane().add(jPasswordField1, new XYConstraints(138, 95, -1, -1));
  }

  void jPasswordField1_actionPerformed(ActionEvent e) {
    //controleren.. als controle gelukt.. dan verder..

    MooiFrame mooiFrame = new MooiFrame();
    mooiFrame.setVisible(true); //show mag niet meer :)
  }
}

package com.borland.samples.welcome;

import java.awt.*;
import javax.swing.JFrame;

public class MooiFrame extends JFrame {

  public MooiFrame() {
  }
}

Verwijderd

Topicstarter
ik heb dit nu als begin

public class FrDoLogin extends JFrame {
XYLayout xYLayout1 = new XYLayout();
JTextField jTextFieldNaam = new JTextField();
JLabel jLabel1 = new JLabel();
JLabel jLabel2 = new JLabel();
JPasswordField jPassword = new JPasswordField();
String naam = jTextFieldNaam.getText();
JFrame frWPR = new FrWPR();
jPassword.addActionListener(new java.awt.event.ActionListener());

en nu snapt ie die actionlistner niet...

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

ga niet zelf rommelen met die actionListeners al je JBuilder gebruikt. Hij is erg streng en hij kan niets meer van jouw code bakken.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Als je een actionListener aan iets wilt hebben moet je even naar designscherm gaan, dan naar het events window (is tab naast properties windows) en dan ff dubbelklikken op event wat je hebben wilt (in jouw geval actionPerformed). En JBuilder die plakt die code er wel in. JBuilder is uitstekend geschikt voor standaard gui werk, maar als je echt wil leren proggen dan kun je dit beter links laten liggen. Met de hand proggen leer je veel meer van.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

[b]Op donderdag 20 december 2001 23:06 schreef
jPassword.addActionListener(new java.awt.event.ActionListener());

en nu snapt ie die actionlistner niet...
ActionListener is een interface en daar kan je geen instantie van aanmaken (dus nieuw object maken). Probeer het eerst even op de JBuilder manier :+ (dus ff via dat event scherm) en als je het daarna nog steeds interessant vind, dan wil ik je die actionListener wel uitleggen.
Pagina: 1