Προς το περιεχόμενο

java κοληματάκι


Dazed_and_confused

Προτεινόμενες αναρτήσεις

Δημοσ.

>import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

public class A2P3 extends Applet implements AdjustmentListener,ActionListener {

 Scrollbar scrb;
 int i;
 String s;
 Button b1;
 public String baction;
 Label l1;
 Graphics g;

 public void init(){
   scrb=new Scrollbar(Scrollbar.HORIZONTAL, 10,10,1,110);
   add(scrb);
   scrb.addAdjustmentListener(this);
   b1=new Button("Draw Line");
   add(b1);
   b1.addActionListener(this);
   l1=new Label("Current Value is    ");
   add(l1);
 }
 public void adjustmentValueChanged(AdjustmentEvent e)
 {
   i=e.getValue();
   l1.setText("Current Value is "+i);
 }
 public void actionPerformed(ActionEvent e) {
    baction = e.getActionCommand();
 }
 public void paint(Graphics g)
 {
    if (baction=="Draw Line")
   g.drawLine(10,40,i,40);
  }
}

 

Αυτός είναι ο κωδικάς μου, θέλω όταν πατάω το κουμπάκι Draw Line, να σχεδιάζει μια γραφή με μήκος i (το i βγαίνει απ' την τιμή που έχει το scrollbar ανά πάσα στιγμή). Νομίζω πως οι τιμές του baction και του i δεν μεταφέρονται στην κλάση paint και εκεί υπάρχει το πρόβλημα.

Αν μπορείτε να χελπάρετε θα το εκτιμούσα.

Δημοσ.

βαλε μεσα στο actionPerformed σου μια κληση στην repaint

 

δηλαδη

>
public void actionPerformed(ActionEvent e) 
   {
       baction = e.getActionCommand();
       repaint();
   }

 

και εισαι ετοιμος

Δημοσ.

ειχε υλοποιησει την actionPerformed......

απλα επρεπε να βαλει μεσα την repaint() ωστε να ανανεωθει το interface του απλετ. Βασικα, οταν ο φιλος νομιζε οτι η γραμμη δε ζωγραφιζοταν, στη πραγματικοτητα ζωγραφιζοταν, απλα δεν ανανεονοταν οποτε δε φαινοταν το αποτελεσμα. Αν εκανε resize το παραθυρο ή αν εκανε minize ή μaximize, η εφαρμογη θα εκανε repaint απο μονη της και θα εβλεπε τη γραμμουλα.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...