18. marts 2001 - 18:16Der er
12 kommentarer og 1 løsning
showStatus og ikke \"applet started\"
Hej Jeg har et lille problem med et stykke kode. Koden virker faktisk, men når appletten er startet skal den skrive et regne stykke i status linien, og ikke \"applet started\"
Det er i \"public void question ()\" at problemet opstår. Ved start af appletten skriver den faktisk til status linien, og hvis det lykkedes at gætte det rigtige tal virker appletten også bagefter. Men kan man på nogen måde forhindre den i at skrive \"applet started\"? Så den ikke overskriver mit regnestykke?
Her er hele koden, så kan i jo selv prøve det, jeg bruger Java2. (ses på at jeg kalder swing):
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
Hvad bruger du din main() metode til? Prøve f.eks. at kalde question() sidst i init metoden (eller sidst i start metoden). Hvis det ikke virker kan du starte en timer i din init metode som efter en kort venteperiode kalder question(). Se javax.swing.Timer klassen.
public class XtimesY extends JApplet implements ActionListener { JTextField result, answer; int Value1, Value2; String message; // FINAL VAR (konstanter) final int LOW = 1; final int HIGH = 9;
public void init ( ) { Container c = getContentPane ( ); c.setLayout ( new FlowLayout ( ) );
result = new JTextField ( 20 ); result.setEditable ( true ); result.addActionListener ( this ); c.add ( result ); question (); }
public void actionPerformed ( ActionEvent e ) { control ( ); }
public void question ( ) { Value1 = RandomInteger ( LOW, HIGH ); Value2 = RandomInteger ( LOW, HIGH ); message = \"How much is \" + Integer.toString ( Value1 ) + \" times \" + Integer.toString ( Value2 ); repaint(); }
public void paint(Graphics g) { super.paint(g); getAppletContext().showStatus(message); } public void control ( ) { int Result;
Result = Integer.parseInt ( result.getText ( ) );
if ( Result == ( Value1 * Value2 ) ) { answer.setText ( \"Very good\" ); question ( ); } else { answer.setText ( \"No. Please try again\" ); } } public int RandomInteger ( int y, int z ) { int x;
x = y + ( int ) ( Math.random () * z ); return x; }
Fuldstændig korrekt, jeg kommenterede nu bare din løsning!
Synes godt om
Ny brugerNybegynder
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.