Avatar billede riversen Nybegynder
29. marts 2002 - 18:20 Der er 19 kommentarer og
1 løsning

ang. JTextField.getText()

Jeg har et JTextField.

hvis tekstfeltet er tomt og jeg kalder getText()...hvad får jeg så retur når der ikke står noget? Det er i hvert fald ikke en tom tekststreng så vidt jeg kan konstatere...
Avatar billede greybeard Nybegynder
29. marts 2002 - 18:27 #1
Mon ikke det er null
Avatar billede riversen Nybegynder
29. marts 2002 - 18:30 #2
nej...har også testet...men du må da gerne lige gøre, det hvis du har tid for en sikkerhedsskyld...

hvis jeg appender til et JTextArea laver den linieskift...så testede jeg, om det jeg får retur er lig med "\n" men den gik heller ikke
Avatar billede jakoba Nybegynder
29. marts 2002 - 19:00 #3
Metoden getText returnerer en String.
prøv at teste den med:

String tomtFelt = ditFelt.getText(); // eller hvordan den nu kaldes.

System.out.println( "længden er " +tomtFelt.length() );
int lgt = tomtFelt.length();
for ( int i=0; i<lgt; i++) {
  System.out.println( i+"'ende bogstav har kode: " +((byte)tomtFelt.charAt(i)) );
}

Og så kan du slå op i din ascii-tabel hvad de sjove koder betyder.

mvh JakobA
Avatar billede greybeard Nybegynder
29. marts 2002 - 19:02 #4
for ( int i = 0 ; i < str.length() ; i++ ) {
          System.out.println( (int)(str.charAt(i)) );
      }
Du kan bruge den her til at teste med, hvor str er dein 'underlige' streng
Avatar billede riversen Nybegynder
29. marts 2002 - 19:20 #5
jakobe: hvis det er tomt, så bliver for løkken ikke kørt
Avatar billede riversen Nybegynder
29. marts 2002 - 19:21 #6
jeg har prøvet

    if( koererNavn.getText() == null )
      System.out.println( "Null" );

men der bliver ikke udskrevet noget...
Avatar billede jakoba Nybegynder
29. marts 2002 - 19:22 #7
Næe, men længden bliver så forhåbentligt udskrevet som 0.
Ellers er der noget helt underligt ved den streng.
Mit gæt er enten længde 0, eller længde 2 med koderne 10 og 13 i en eller anden rækkefølge.
men prøv.
Avatar billede riversen Nybegynder
29. marts 2002 - 19:25 #8
ja, længden bliver udskrevet som 0...har prøvet...
Avatar billede jakoba Nybegynder
29. marts 2002 - 19:29 #9
Så er det en tom streng du får.
den burde teste true med
    if( koererNavn.getText() == "" )
        System.out.println( "tom streng" );

At en append til JTextArea så giver et linieskift, det må være en regel for append i JTextArea.
Adderer den også et linieskift når du appender en streng med noget i?

mvh JakobA
Avatar billede riversen Nybegynder
29. marts 2002 - 19:34 #10
jeg har testet det med en tom streng...

    if( koererNavn.getText() == "" )
      System.out.println( "Tom tekststreng" );

det bliver ikke udskrevet...

ja, den indsætter faktisk et linieskift, når jeg tilføjer noget tekst...kan man undgå det?

grunden til alt dette er, at jeg har et JTextField, hvor man skriver et navn...når der trykkes på knappen tilføj, skal det tilføjes i JTextField, men det erjo ikke så smart, hvis man trykker Tilføj når der ikke stå rnoget, og der så bliver tilføjet en tom linie.
Der var måske smartere med JTable (eller måske noget andet jeg ikke kender), men kunne ikke finde ud af JTable.
Avatar billede jakoba Nybegynder
29. marts 2002 - 19:35 #11
Ups. næe strengsammenligning er anderleds i Java. testen hedder:

    if( koererNavn.getText().equals( "" ) )
        System.out.println( "tom streng" );
Avatar billede jakoba Nybegynder
29. marts 2002 - 19:38 #12
mon ikke der udover append metoden er er get og en set metode så du kan sige noget i retning af

  JTextFiedInstans.set( JTextFiedInstans.get() + koererNavn.getText() );

mvh JakobA
Avatar billede riversen Nybegynder
29. marts 2002 - 19:40 #13
nåja, for f.....

jeg siger tak...
Avatar billede jakoba Nybegynder
29. marts 2002 - 20:10 #14
selv tak.

Jeg har kikket i:
  http://java.sun.com/j2se/1.3/docs/api/javax/swing/JTextArea.html

og i Suns dokumentation til JTextArea står der om append:

---------------------
append

public void append(String str)

    Appends the given text to the end of the document. Does nothing if the model is null or the string is null or empty.

    This method is thread safe, although most Swing methods are not. Please see Threads and Swing for more information.
    Parameters:
          str - the text to insert
    See Also:
          insert(java.lang.String, int)
--------------------

Det "Does nothing ..." er meget definitivt og stemmer ikke med at du får adderet et linieskift.

bruger du JTextArea(...) som constructor eller er det i virkeligheden en anden klasse (afledt af JTextArea) du bruger?.

mvh JakobA
Avatar billede riversen Nybegynder
29. marts 2002 - 20:41 #15
JakobA: så prøv selv...
Avatar billede riversen Nybegynder
29. marts 2002 - 20:42 #16
jeg bruger JTextArea(int rows, int columns)
Avatar billede jakoba Nybegynder
29. marts 2002 - 21:10 #17
besynderligt.
måske en ændring fra en tidligere version af klassen.
Avatar billede riversen Nybegynder
29. marts 2002 - 21:13 #18
hehe...var ellers bange for jeg sikkert havde taget fejl...

igen, tak for hjælpen...jeg er kommet et godt stykke videre nu...
Avatar billede jakoba Nybegynder
12. april 2002 - 15:51 #19
Hej riversen.
kik her: http://exp.dk/spm/197270
han har præcis det omvendte problem, at han ikke får linieskift selvom han gerne ville.

Hvis i to nu sammenligner koden for hvordan i opstillede det JTextArea må i da kunne se hvad i gør forskelligt.

mvh JakobA
Avatar billede riversen Nybegynder
12. april 2002 - 15:53 #20
ok...kigger lige forbi
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