[java] string -> integer -> bewerk -> string

Pagina: 1
Acties:
  • 120 views sinds 30-01-2008
  • Reageer

  • TheRebell
  • Registratie: Oktober 2000
  • Laatst online: 15-09 22:37
Hoi,

Ik zoek een manier om een getal uit een TextField te lezen en deze dan om te zetten naar een Integer (dmv Integer.parseInt()?). Op het getal moet een bewerking worden uitgevoerd, er 1 bij optellen, en dit getal moet dan weer worden teruggestuurd naar het TextField.

Ik heb het getal als integer kunnen uitlezen maar het terugschrijven lukt niet. Mbv setText() gaat het iig niet, ook wil het met setInt() niet lukken. Weet iemand misschien hoe ik dit wel kan doen :?

ps: ik gebruik PowerJ

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
code:
1
2
int i = 15;
String s = "" + i;

op die manier kun je het doen.

  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 03-09 16:40
De simpelste manier(maar niet de meest nette):

int deInteger = 5;

String deString = "" + deInteger;

  • TheRebell
  • Registratie: Oktober 2000
  • Laatst online: 15-09 22:37
Kan ik dan wel een optelling maken? Ik heb zoiets geprobeerd en toen plaatste Java het getal er gewoon achter ipv het erbij op te tellen :(

  • tomato
  • Registratie: November 1999
  • Niet online
toString() :?

  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 03-09 16:40
Zet maar is even haakjes om je optelling...

"" + 5 + 6
wordt:
"5" + 6
wordt:
"56"

Echter:
"" + (5 + 6)
wordt:
"" + 11
wordt:
"11"


Bovendien is het netter om je rekenkundige bewerkingen buiten de string conversie te doen. Maar dat is meer je eigen keuze.

  • TheRebell
  • Registratie: Oktober 2000
  • Laatst online: 15-09 22:37
Op deze manier dus:

if(event.getSource() == kopieUpKnop){
temp= Integer.parseInt(kopieVeld.getText());
temp= "" + i;
kopieVeld.setText(temp);
}

??

Dan krijg ik de volgende error's:

expression cannot be converted for assignment.
source type is 'class java.lang.String'.
target type is 'int'.
expression cannot be converted for assignment.
method argument(s) do not match those in prototype.
argument types: 'setText(int)'.
possible candidate: 'void java.awt.TextComponent.setText(java.lang.String)'.
symbol defined in: java/awt/TextComponent.class.
source type is 'class java.lang.String'.
target type is 'int'.


:?

  • PjotrP
  • Registratie: Augustus 2001
  • Laatst online: 01-07 09:12
if(event.getSource() == kopieUpKnop){
temp= Integer.parseInt(kopieVeld.getText());
temp= "" + i;
kopieVeld.setText(temp);
}


Dat kan ook niet: temp zou eerst een int zijn en vervolgens een String;
gebruik de tweede keer maar geen temp, en doet het zo:
kopieVeld.setText("" + temp);
(maak temp dus een int)

Zonnepaneel installateur


  • TheRebell
  • Registratie: Oktober 2000
  • Laatst online: 15-09 22:37
Ik zag het ook ja dus heb het opgelost met een 2e temp (temp1) (jaja, overzichtelijk is het nu niet meer)
Dit werkt ook weer niet :(

  • TheRebell
  • Registratie: Oktober 2000
  • Laatst online: 15-09 22:37
Heren/dames,

bedankt, het is gelukt (thnx tomato) met Integer.toString()

:)

  • Tomatrix
  • Registratie: Juni 1999
  • Laatst online: 27-02-2025
code:
1
2
3
int temp = Integer.parseInt (kopieVeld.getText ());
temp += i;
kopieVeld.setText (String.valueOf (temp));

Je kan trouwens beter actions gebruiken voor het opvangen van je events ipv. de source gaan zitten comparen.

  • TheRebell
  • Registratie: Oktober 2000
  • Laatst online: 15-09 22:37
huh, hoe bedoel je :?

  • Tomatrix
  • Registratie: Juni 1999
  • Laatst online: 27-02-2025
Ja kan aan een bepaalde button dus beter een aparte action koppelen die het javax.swing.Action interface implementeert. Dan hoef je geen ellenlange if then else constructies meer te maken en kan je je action (bijvoorbeeld SaveFileAsAction, die vrij generiek is) makkelijk hergebruiken. Lees ff de swing tutorial over actions erop na!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

ja maar wie zegt dat hij Swing gebruikt :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Tomatrix
  • Registratie: Juni 1999
  • Laatst online: 27-02-2025
Niemand, maar het kan nooit kwaad om een goed design pattern te gebruiken :)

  • TheRebell
  • Registratie: Oktober 2000
  • Laatst online: 15-09 22:37
Thnx, ik gebruik geen Swing maar ga er nu zeker even naar kijken.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
TheRebell: Thnx, ik gebruik geen Swing maar ga er nu zeker even naar kijken.
Je kunt in AWT sowieso ook ActionListeners gebruiken (Actions zijn daar een uitbreiding van). Het is het mooiste als je voor elk component een andere ActionListener aanmeldt en dus geen gevalsonderscheid gaat doen in de actionPerformed methode van de ActionListener :) .

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


  • momania
  • Registratie: Mei 2000
  • Laatst online: 11:40

momania

iPhone 30! Bam!

Wat ook niet geheel onbelangrijk is, is om de
String die je uit het TextField trekt ff
na te lopen op de characters.
Dus ff checken of alle characters van de String
wel getallen zijn voordat je een parseInt() doet.
Anders krijg je nog van die fijne
exceptions om je oren. :(

Dus ff de character array opvragen van de String
en als ik het goed heb kan je dan met de
Character class heel makkelijk doen met de
static methode Character.isDigit(char c)
en die geeft dan een boolean terug.

succes! :)

Neem je whisky mee, is het te weinig... *zucht*


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

Op maandag 31 december 2001 18:46 schreef momania het volgende:
Wat ook niet geheel onbelangrijk is, is om de
String die je uit het TextField trekt ff
na te lopen op de characters.
Dus ff checken of alle characters van de String
wel getallen zijn voordat je een parseInt() doet.
Anders krijg je nog van die fijne
exceptions om je oren. :(
Waarom is dat " :(" :?
Als je de exception gewoon afvangt dan hoef je niet eens te controleren op foute chars
code:
1
2
3
4
5
6
7
8
9
try
{
    i = Integer.parseInt (textfield.getText ());
}
catch (NumberFormatException e)
{
    // hier je code om tegen de gebruiker
    // te zeggen dat de invoer niet knopt
}

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • momania
  • Registratie: Mei 2000
  • Laatst online: 11:40

momania

iPhone 30! Bam!

Dat kan natuurlijk ook ;-)
Ik vind het zelf aleen altijd erg fijn als ik het via
programmeren kan afvangen ipv (wat heel veel nieuwe java programeurs doen)
ff alles in een try-catch proppen en dan zien we wel...

bijkomend voordeel als je het zo afvangt is dat je veel preciezer naar de gebruiker terug kan komen met de fout die er gemaakt is...

Nog mooier is om er een nummeric textfield van te maken in dit geval. Dan weet je iig altijd zeker dat er getallen uitkomen... (8> ;-)

Neem je whisky mee, is het te weinig... *zucht*

Pagina: 1