[java] JPasswordField extend JTextField hoe dit te doen

Pagina: 1
Acties:
  • 59 views sinds 30-01-2008

  • BSeB
  • Registratie: Juni 2001
  • Laatst online: 22-09-2025
Ik ben dus bezig dit voor elkaar te krijgen, zoals al gemeld, maar ik krijg dit niet voor elkaar. Ik weet hoe ik een "extends" class moet maken. Maar hoe ik dit moet doen zou ik niet weten.

heb overal gezocht:

- op "extend" en "extend JTetfield" etc op GoT en Google. Beide geven geen resultaat. Ik wil het best zelf uitzoeken. Maar dan wil ik graag weten waar ik die info zou moeten vinden heo dit dus moet.

Het gaat er dus om dat ik de Password een gespecificeerde lengte kan meegeven van 8 karakters. Standaard kun je bijvoorbeeld dit doen:

JPassWordField(8) -> Dit gaat over het aantal kolommen en niet over het aantal karakters.

Bij een textarea had ik dit gedaan door deze te vervangen door een JFormattedTextField. Met daaraan een functie die de inhoud sette op 10 tekens. Hoe moet ik dit doen bij een Passwordfield (Een textfield heeft ook geen echochar functie zodat je kan verbergen).

  • Standeman
  • Registratie: November 2000
  • Nu online

Standeman

Prutser 1e klasse

Volgens mij ben je redelijk nieuw met Java. Mijn ervaring is dat het best lastig is om er mee te beginnen. B)

Maar als ik jou was zou ik hier naar kijken http://java.sun.com/docs/...va/javaOO/subclasses.html

Overigens is mij niet helemaal duidelijk wat je probeerd te bereiken :?

[edit]
Ik heb eventjes snel gekeken in de API doc en misschien helpt dit je.

code:
1
2
JPassWordField jpwf = new JPassWordField();
jpwf.setColumns(10);


Bovenstaande zou gewoon moeten werken. De method setColumns wordt automagisch overerft van de JTextField klasse en kan je dus direct gebruiken.

[ Voor 34% gewijzigd door Standeman op 08-10-2004 10:19 ]

The ships hung in the sky in much the same way that bricks don’t.


  • BSeB
  • Registratie: Juni 2001
  • Laatst online: 22-09-2025
Het spijt me, maar dat werkt dus niet. Ik ben al een tijdje aan het zoeken hiernaar. Maar ik kan dus geen interesante en duidelijke info hierover vinden.

Bij een JFormattedTextfield kun je dit gebruiken:

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
protected MaskFormatter createFormatter(String s)
     {
     MaskFormatter formatter = null;
     try
         {
           formatter = new MaskFormatter(s);
         }
         catch (java.text.ParseException exc)
         {
           System.err.println("formatter is bad: " + exc.getMessage());
       System.exit(-1);
     }
     return formatter;
   }

Als ik dit voor een passwordfield zou kunnen gebruiken dan is het ook goed

Tevens had ik die manual allang doorgelezen

[ Voor 7% gewijzigd door BSeB op 08-10-2004 10:28 ]


  • Standeman
  • Registratie: November 2000
  • Nu online

Standeman

Prutser 1e klasse

Ik heb net ook je vorige topic doorgelezen en volgens mij staat het antwoord daar al in.
Of ik ben een beetje 8)7 of je legt je probleem compleet verkeerd uit. Ik heb namelijk moeite te begrijpen waar je nou precies heen wilt?

The ships hung in the sky in much the same way that bricks don’t.


  • BSeB
  • Registratie: Juni 2001
  • Laatst online: 22-09-2025
Het zit dus zo:

Dat vorige topic was er juist voor om te vragen hoe ik een extend moest maken aan een JPasswordfield. Ik wil dat het password niet langer mag zijn als 8 tekens.

In dat vorige topic had ik het ook over een textarea, die heb ik weten te beperken tot 10 tekens met behulp van en JFormattedField.

Zoals ik dat vorge topic stond zou ik dus daarmee een Passwordfield kunnen maken (met die oplossing) maar dat kan niet.

Er staat dat ik dan Jpasswordfield moet extenden aan JTextfield of zoals ik graag zou willen JFormattedField. Dit heeft als voordeel dat ik bovenstaande method kan gebruiken om het aantal tekens te bepalen en OOK de soort tekens.

Maar nu wil ik deze dus extenden en dat wil niet lukken en kan er ook niks over vinden. Wel over extends en inherritance, wat ik dus eigenlijk wil. Maar ik krijg dat niet voor elkaar. Ik moet ze dan in een eigen class duwen met een extends JFormattedTextField.

Ik hoop dat ik zo duidelijker ben. Maar nogmaals. Kolums zijn geen karakers. Daarom is dit ook niet te gebruiken voor karakterbeperking.

  • jAnO!
  • Registratie: Januari 2002
  • Laatst online: 01-05 18:22

jAnO!

lalalavanillevla

probeer eens te zoeken op extends ipv extend...

en wat je in vredesnaam bedoeld met ik probeer JPasswordField te extenden aan JFormatedbla... ?

Extends is het keyword dat zorgt voor overerving, je kan een nieuwe Class maken die overerft van bijv. JPasswordField, maar je kan niet erven van meer dan 1 klasse. Of 2 Classes aan elkaar knopen op die manier..

Maar grote tip: Doe eerst eens even de Java tutorial, leer zoeken in de API en lees een goed boek (bijv. Thinking in JAVA van Bruce Eckel).

[ Voor 83% gewijzigd door jAnO! op 08-10-2004 10:58 ]

When some people work at a place for ten years they get ten years of experience, other people work at a place for ten years and get one year of experience ten times.


  • BSeB
  • Registratie: Juni 2001
  • Laatst online: 22-09-2025
Dit onderstaande is wat ik heb geprobeerd en vele variaties. Waarschijnlijk zit er ergens een fout in, want dit wil dus niet werken. Ik heb dus ook de extends gebruikt. Normaal lukt me dat wel, nu dus niet.

Java:
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
import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
import javax.swing.text.*;

import javax.swing.JPasswordField;
import javax.swing.JFormattedTextField;

public class PassWord extends JFormattedTextField
{
  JPasswordField password;

  public JPasswordField Passwordfield()
  {
        JPasswordField password = new JPasswordField(createFormatter("HHHHHHHHHH"));
      return password;
  }
  protected MaskFormatter createFormatter(String s)
     {
     MaskFormatter formatter = null;
     try
         {
           formatter = new MaskFormatter(s);
         }
         catch (java.text.ParseException exc)
         {
           System.err.println("formatter is bad: " + exc.getMessage());
       System.exit(-1);
     }
     return formatter;
   }
}

  • Daventry
  • Registratie: Oktober 2004
  • Laatst online: 21-04-2025
Heb ff geen idee hoe je dit moet oplossen, maar als je je afvraagt waarom die laatste lap code niet werkt, dat lijkt me nogal evident.

Je probeert op lijn 16 een JPasswordField te creeren met als argument een MaskFormatter wat helemaal geen geldige constructor is

  • BSeB
  • Registratie: Juni 2001
  • Laatst online: 22-09-2025
Daventry schreef op 08 oktober 2004 @ 11:11:
Heb ff geen idee hoe je dit moet oplossen, maar als je je afvraagt waarom die laatste lap code niet werkt, dat lijkt me nogal evident.

Je probeert op lijn 16 een JPasswordField te creeren met als argument een MaskFormatter wat helemaal geen geldige constructor is
Dat klopt want dat is een constructor van JFormattedTextField, Maar dat was meer het idee om te laten zien wat ik bedoelde.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 01:53

Janoz

Moderator Devschuur®

!litemod

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1

Dit topic is gesloten.