Jeg skal til at lave et program hvor den skiftevis skifter mellem en linje, rektangel og oval, ved tryk på musen, jeg har allerede lavet et program der laver en linje:
public class hændelse2 { public static void main(String[] arg) { Linjetegning vindue = new Linjetegning(); vindue.setSize(400,400); vindue.setTitle("GrafiskVindue"); vindue.setVisible(true);
} }
Men er lidt usikker på hvordan man skal lave det ved at skifte, jeg kunne tænke mig at det skulle være ved if og else sætninger, men jeg ved ikke helt hvordan.
if (tæller%3==0) System.out.println("Tegn Linje"); else if (tæller%3==1) System.out.println("Tegn Oval"); else if (tæller%3==2) System.out.println("Tegn Trekant");
Nu har jeg prøvet at gøre som du sagde winners79, men det virker ikke lige umiddelbart, så jeg har prøvet følgende: import java.awt.*; import java.awt.event.*; import java.applet.*;
class Linjelytter implements MouseListener { public Linjetegning vinduet; public void mousePressed(MouseEvent hændelse) { vinduet.trykpunkt = hændelse.getPoint(); }
public void mouseReleased(MouseEvent hændelse) { vinduet.slippunkt = hændelse.getPoint(); vinduet.repaint(); }
public void mouseClicked(MouseEvent event) {} public void mouseEntered (MouseEvent event) {} public void mouseExited (MouseEvent event) {} }
class Linjetegning extends Frame { public Point trykpunkt; public Point slippunkt;
public Linjetegning() { Linjelytter lytter = new Linjelytter(); lytter.vinduet= this; this.addMouseListener(lytter); }
private boolean firstTime = true; private int tæller = 0;
public CustomPanel() {
}
public void paintComponent(Graphics g){ if (!firstTime){ g.clearRect(0, 0, getWidth(), getHeight()); if (tæller%3 == 0) g.drawString("Her er en Linje", 50, 50); if (tæller%3 == 1) g.drawString("Her er en Trekant", 50, 50); if (tæller%3 == 2) g.drawString("Her er en Oval", 50, 50); } }
public boolean isFirstTime() { return firstTime; }
public void setFirstTime(boolean firstTime) { this.firstTime = firstTime; }
public int getTæller() { return tæller; }
public void setTæller(int tæller) { this.tæller = tæller; repaint(); }
Jeg siger mange tak for alle jeres hurtige svar, men jeg kan stadig ikke få den til at virke, heller ikke den sidste, den tegner alle sammen på én gang. Nogen der ved hvordan man får den til ikke at gøre det?
Med venlig hilsen David
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.