Schut4ever
Nieuwe gebruiker
- Lid geworden
- 7 mei 2009
- Berichten
- 4
Ik heb ongeveer hetzelfde probleem als Sanderino1992, bij hem is het opgelost, maar mij lukt het niet. Ik gebruik het programma JBuilder. Om die van Sanderino1992 te zien: http://www.helpmij.nl/forum/showthread.php?t=418654
Als oplossing kreeg hij:
Maar ik weet niet hoe ik dat in de mijne moet verwerken, dit is mijn code:
De code lijkt niet erg overzichtelijk door het kopieren, ik hoop dat het een beetje te lezen valt.
Weet iemand hoe je het in mijn programma moet verwerken en waar?
In java heb ik een programma gemaakt met rekensommen. Ik heb een tekstvak en daar kan een getal worden ingevuld, dan druk je op de knop en moet er een uitkomst uitkomen. Dit lukt. Als er letters of andere tekens ( bijv. **%!#!*$!#%!%) worden ingevuld, doet het programma natuurlijk niets. Ik zou graag in bijvoorbeeld een string een foutmelding willen geven als men een ander teken dan een letter invoert.
Hoe laat ik mijn programma getallen herkennen? En hoe kan ik dit het beste programmeren?
Als oplossing kreeg hij:
Code:
public void actionPerformed( ActionEvent e ) {
if( e.getSource() == knop ) {
String getalinvoer;
getalinvoer = invoerveld.getText();
try{
x = Integer.parseInt( getalinvoer );
//+de rest van de code. Als je de rest van de code buiten dit blok zet,
//zal die code uitgevoerd worden met de oude waarde van x, en dat wil je niet.
}catch(NumberFormatException ex)
{
uitvoerveld.setText("Je hebt geen geldig getal ingevoerd");
}
.
.
.
}
Maar ik weet niet hoe ik dat in de mijne moet verwerken, dit is mijn code:
package tijdeenheden;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class Tijd extends Applet
implements ActionListener // Aangeven dat er in een programma een reactie moet zijn op een event
{
String invoerstring1, invoerstring2, invoerstring3; //Declareren van de invoerteksten
TextField invoervak1, invoervak2, invoervak3; //Declareer invoervelden
TextField uitvoervak1, uitvoervak2, uitvoervak3; //Declareer uitvoervelden
Button uur, minu, sec, uurminu, uursec, minusec, uurminusec, reset; //Declareer knoppen
public void init() // Hier begint het programma mee
{
setLayout( null ); // Automische layout wordt uitgezet
invoervak1 = new TextField(10); // Aangeven dat de invoervelden Textfields zijn
invoervak2 = new TextField(10);
invoervak3 = new TextField(10);
uitvoervak1 = new TextField(10); // Aangeven dat de uitvoervelden Textfields zijn
uitvoervak2 = new TextField(10);
uitvoervak3 = new TextField(10);
uur = new Button( "#" ); // Aangeven dat de knoppen Buttons zijn en de tekst die er op komt, namelijk #
minu = new Button( "#" );
sec = new Button( "#" );
uurminu = new Button( "#" );
uursec = new Button( "#");
minusec = new Button( "#");
uurminusec = new Button( "#" );
reset= new Button ( "Reset" ); // Deze heeft een andere naam, omdat deze voor de reset is
uur.addActionListener(this); // Aangeven dat de knoppen een event bevatten
minu.addActionListener(this);
sec.addActionListener(this);
uurminu.addActionListener(this);
uursec.addActionListener(this);
minusec.addActionListener(this);
uurminusec.addActionListener(this);
reset.addActionListener(this);
invoervak1.setBounds( 5, 70, 90, 20 ); // Aangeven welke plek de invoervakken staan + lengte en breedte
invoervak2.setBounds( 102, 70, 90, 20 );
invoervak3.setBounds( 199, 70, 90, 20 );
uitvoervak1.setBounds( 5, 270, 90, 20 ); // Aangeven welke plek de invoervakken staan + lengte en breedte
uitvoervak2.setBounds( 102, 270, 90, 20 );
uitvoervak3.setBounds( 199, 270, 90, 20 );
uur.setBounds( 5, 110, 15, 15 ); // Aangeven welke plek de knoppen hebben + lengte en breedte
minu.setBounds( 5, 127, 15, 15 );
sec.setBounds( 5, 144, 15, 15 );
uurminu.setBounds( 5, 161, 15, 15 );
uursec.setBounds( 5, 178, 15, 15 );
minusec.setBounds( 5, 195, 15, 15 );
uurminusec.setBounds( 5, 212, 15, 15 );
reset.setBounds( 240, 234, 50, 20 );
add( invoervak1 ); // Toevoegen van de invoervakken in de applet
add( invoervak2 );
add( invoervak3 );
add( uitvoervak1 ); // Toevoegen van de uitvoervakken in de applet
add( uitvoervak2 );
add( uitvoervak3 );
add( uur ); // Toevoegen van knoppen in de applet
add( minu );
add( sec );
add( uurminu );
add( uursec );
add( minusec );
add( uurminusec );
add( reset );
}
public void paint( Graphics g ) //Aangeven dat dit het grafische gedeelte is
{
setBackground( Color.gray ); // Achtergrondkleur is grijs
g.drawString( "Voer het aantal uren, minuten en seconden in. Kies", 2, 10 ); // Tekst van handleiding van de applet laten 'tekenenen' + de positie
g.drawString( "de knop waarin uw gewenste uitkomst in eenheden", 2, 22 );
g.drawString( "staat. LET OP! Vul alle invoervakken in en doe dit in", 2, 34 );
g.drawString( "hele getallen en niet meer dan 5 getallen per vak.", 2,46 ); // Einde handleiding
g.drawString( "Uren", 5, 65 ); // Tekst die bij de invoervelden horen ter verduidelijking + positie
g.drawString( "Minuten", 105, 65 );
g.drawString( "Seconden", 200, 65 ); // Einde tekst bij invoervelden
g.drawString( "Uren", 22, 120 ); // Tekst die bij de knoppen horen ter verduidelijking + positie
g.drawString( "Minuten", 22, 137 );
g.drawString( "Seconden", 22, 154 );
g.drawString( "Uren en minuten", 22, 171 );
g.drawString( "Uren en seconden", 22, 188 );
g.drawString( "Minuten en seconden", 22, 205 );
g.drawString( "Uren, minuten en seconden", 22, 222 ); // Einde van tekst die bij de knoppen hoort
g.drawString( "Waarnaar wilt u de gegevens omzetten?", 35, 105 ); // Tekst ter verduidelijking dat iemand een keuze heeft uit de knoppen + positie
g.drawString( "Uitkomst", 120, 245 ); // Tekst ter verduidelijking dat de uitkomst hieronder staat + positie
g.drawString( "Uren", 5, 265 ); // Tekst die bij de uitvoervelden horen ter verduidelijking + positie
g.drawString( "Minuten", 105, 265 );
g.drawString( "Seconden", 200, 265 );
g.drawLine( 0, 51, 300, 51 ); // Lijnen om het geheel overzichtelijker en duidelijker te maken
g.drawLine( 0, 93, 300, 93 );
g.drawLine( 0, 229, 300, 229 ); // Einde lijnen 'tekenenen'
}
int AantalSeconden() // Declareren van methode
{
invoerstring1 = invoervak1.getText(); // Invoertekst uit het invoervak halen
invoerstring2 = invoervak2.getText();
invoerstring3 = invoervak3.getText();
int sec1, sec2, as; // Declareren van de tussenwaardes ( sec1 en sec2) en eindwaarde (as) als int
int uren, minuten, seconden; //Declareren van de invoerteksten die worden omgezet in getallen als
uren = Integer.parseInt( invoerstring1 ); // Zet de invoertekst om in getallen (uren) als int
minuten = Integer.parseInt( invoerstring2 ); // Zet de invoertekst om in getallen (minuten) als int
seconden = Integer.parseInt( invoerstring3 ); // Zet de invoertekst om in getallen (seconden) als int
sec1 = uren * 3600; // De uren worden omgezet in door het te vermenvuldigen met 3600
sec2 = minuten * 60; // De minuten worden omgezet in seconden door het te vermenvuldigen met 60
as = sec1 + sec2 + seconden; // De tussenwaardes in seconden worden opgeteld, zodat je het totaal aantal seconden hebt
return (int)as; // Geeft de eindwaarde
}
public void actionPerformed( ActionEvent e ) // In dit gedeelte worden events uitgevoerd
{
if( e.getSource() == uur ) // Als de knop uur wordt ingedrukt wordt de onderstaande opdracht uitgevoerd
{ // Begin opdracht
int as; // Declareer as als int
double uren; // Declareer uren als double
as=AantalSeconden(); // Oproepen van methode AantalSeconenden en stelt de uitkomstwaarde van de methode gelijk aan as
uren = as * 1.0 / 3600; // Berekening naar uren door as te delen door 3600 sec
uitvoervak1.setText( "" + uren ); // Zet antwoord (uren) in uitvoervak1
uitvoervak2.setText( "" ); // Leeg uitvoervak2
uitvoervak3.setText( "" ); // Leeg uitvoervak3
} // Eind opdracht
if( e.getSource() == minu ) // Als de knop minu wordt ingedrukt wordt de onderstaande opdracht uitgevoerd
{ // Begin opdracht
int as; // Declareer as als int
double minuten; // Declareer minuten als double
as=AantalSeconden(); // Oproepen van methode AantalSeconden en stelt de uitkomstwaarde van de methode gelijk aan as
minuten = as * 1.0 / 60; // Berekening naar minuten door as te delen door 60 sec
uitvoervak1.setText( "" ); // Leeg uitvoervak1
uitvoervak2.setText( "" + minuten ); // Zet waarde minuten in uitvoervak2
uitvoervak3.setText( "" ); // Leeg uitvoervak3
} // Eind opdracht
if( e.getSource() == sec ) // Als de knop sec wordt ingedrukt wordt de onderstaande opdracht uitgevoerd
{ // Begin opdracht
int as, seconden; // Declareer as en seconden als int
as=AantalSeconden(); // Oproepen van methode AantalSeconden en stelt de uitkomstwaarde van de methode gelijk aan as
uitvoervak1.setText( "" ); // Leeg uitvoervak1
uitvoervak2.setText( "" ); // Leeg uitvoervak2
uitvoervak3.setText( "" + as ); // Zet waarde as (aantalseconden) in uitvoervak2
} // Eind opdracht
if( e.getSource() == uurminu ) // Als de knop uurminu wordt ingedrukt wordt de onderstaande opdracht uitgevoerd
{ // Begin opdracht
int as, rest1, uren; // Declareer as, rest1 en uren als int
double minuten; // Declareer minuten als double
as=AantalSeconden(); // Oproepen van methode AantalSeconden en stelt de uitkomstwaarde van de methode gelijk aan as
uren = as / 3600; // Berekening naar uren door as te delen door 3600 sec
rest1 = as % 3600; // Berekening van getal (aantal seconden) dat overblijft nadat het gedeeld is door het aantal HELE uren
minuten = rest1 * 1.0 / 60; // Berekning naar minuten door rest1 te delen door 60
uitvoervak1.setText( "" + uren ); // Zet waarde uren in uitvoervak1
uitvoervak2.setText( "" + minuten ); // Zet waarde minuten in uitvoervak2
uitvoervak3.setText( "" ); // Leeg uitvoervak3
} // Eind opdracht
if( e.getSource() == uursec ) // Als de knop uursec wordt ingedrukt wordt de onderstaande opdracht uitgevoerd
{ // Begin opdracht
int as, seconden, uren; // Declareer as, seconden en uren als int
as=AantalSeconden(); // Oproepen van methode AantalSeconden en stelt de uitkomstwaarde van de methode gelijk aan as
uren = as / 3600; // Berekening naar uren door as te delen door 3600 sec
seconden = as % 3600; // Berekening van aantal seconden dat overblijft nadat het totaal gedeeld is door het aantal HELE uren
uitvoervak1.setText( "" + uren ); // Zet waarde uren in uitvoervak1
uitvoervak2.setText( "" ); // Leeg uitvoervak2
uitvoervak3.setText( "" + seconden ); // Zet waarde seconden in uitvoervak3
} // Eind opdracht
if( e.getSource() == minusec ) // Als de knop minusec wordt ingedrukt wordt de onderstaande opdracht uitgevoerd
{ // Begin opdracht
int as, seconden, minuten; // Declareer as, seconden en minuten als int
as=AantalSeconden(); // Oproepen van methode AantalSeconden en stelt de uitkomstwaarde van de methode gelijk aan as
minuten = as / 60; // Berekening naar minuten door as te delen door 60 sec
seconden = as % 60; // Berekening van aantal seconden dat overblijft nadat het totaal gedeeld is door het aantal HELE minuten
uitvoervak1.setText( "" ); // Leeg uitvoervak1
uitvoervak2.setText( "" + minuten ); // Zet waarde minuten in uitvoervak2
uitvoervak3.setText( "" + seconden ); // Zet waarde seconden in uitvoervak3
} // Eind opdracht
if( e.getSource() == uurminusec ) // Als de knop uurminusec wordt ingedrukt wordt de onderstaande opdracht uitgevoerd
{ // Begin opdracht
int as, rest1, rest2; // Declareer as, rest1 en rest2 als int
int seconden, uren, minuten; // Declareer seconden, uren, minuten als int
as=AantalSeconden(); // Oproepen van methode AantalSeconden en stelt de uitkomstwaarde van de methode gelijk aan as
uren = as /3600; // Berekening naar uren door as te delen door 3600 sec
rest1 = as % 3600; // Berekening van aantal seconden dat overblijft nadat het gedeeld is door het aantal HELE uren
minuten = rest1 / 60; // Berekening naar minuten door as te delen door 3600 sec
rest2 = rest1 % 60; // Berekening van aantal seconden dat overblijft nadat het rest1 gedeeld is door het aantal HELE minuten
seconden = rest2; // Aantal overgebleven seconden (rest2) wordt gelijk gemaakt aan seconden
uitvoervak1.setText( "" + uren ); // Zet waarde uren in uitvoervak1
uitvoervak2.setText( "" + minuten ); // Zet waarde minuten in uitvoervak2
uitvoervak3.setText( "" + seconden ); // Zet waarde seconden in uitvoervak3
} // Eind opdracht
if( e.getSource() == reset ) // Als de knop uurminusec wordt ingedrukt wordt de onderstaande opdracht uitgevoerd
{ // Begin opdracht
uitvoervak1.setText( "" ); // Leeg uitvoervak1
uitvoervak2.setText( "" ); // Leeg uitvoervak2
uitvoervak3.setText( "" ); // Leeg uitvoervak3
invoervak1.setText( "" ); // Leeg invoervak1
invoervak2.setText( "" ); // Leeg invoervak2
invoervak3.setText( "" ); // Leeg invoervak3
} // Eind opdracht
}
}
De code lijkt niet erg overzichtelijk door het kopieren, ik hoop dat het een beetje te lezen valt.
Weet iemand hoe je het in mijn programma moet verwerken en waar?
Laatst bewerkt: