User Tools

Site Tools


linuxbog.old:java:java-events-ekstra-eksempler
Linux - Friheden til at programmere i Java: Version 0.7.20040516 - 2020-12-31
forrige Kapitel 13. Hændelser i grafiske brugergrænseflader næste

13.3. Ekstra eksempler

Ovenfor har vi brugt MouseListener som illustration. Her vil vi give eksempler på brug af de andre typer lyttere (beskrevet i appendiks senere i kapitlet).

13.3.1. Lytte til musebevægelser

Med MouseMotionListener får man adgang til hændelserne mouseMoved og mouseDragged. Det kan bruges til at tegne grafiske figurer ved at hive musen hen over skærmen.

Her er en applet til at tegne kruseduller. Vi husker punktet, når musen trykkes ned (mousePressed()), og tegner en linje fra forrige punkt til musen, når den trækkes med nedtrykket knap (mouseDragged()).

Tegningen af grafikken sker direkte i håndteringen af hændelsen.

import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class Kruseduller extends Applet
                         implements MouseListener //, MouseMotionListener// {
  public void init()
  {
    this.addMouseListener(this); //this.addMouseMotionListener(this);// }

  Point punkt;

  public void mousePressed(MouseEvent hændelse) //// kræves af MouseListener// {
    punkt = hændelse.getPoint();
  }

  public void mouseDragged(MouseEvent hændelse) //// kræves af MouseMotionListener// {
    Point gammeltPunkt = punkt;
    punkt =   hændelse.getPoint();
    Graphics g = getGraphics();
    g.drawLine(gammeltPunkt.x, gammeltPunkt.y, punkt.x, punkt.y);
  }

  public void mouseReleased (MouseEvent hændelse){} //// kræves af MouseListener// public void mouseClicked (MouseEvent event) {} //// kræves af MouseListener// public void mouseEntered (MouseEvent event) {} //// kræves af MouseListener// public void mouseExited (MouseEvent event) {} //// kræves af MouseListener// public void mouseMoved (MouseEvent hændelse) {} //// kræves af MouseMotionListener// }

Da vi ikke husker de gamle punkter, kan vi ikke gentegne krusedullen, når systemet kalder paint().

13.3.2. Lytte til en knap

Det vigtigste interface til programmering af grafiske brugergrænseflader er ActionListener med metoden actionPerformed(). Den bruges bl.a. til at lytte til, om knapper bliver trykket på. Her er et eksempel, hvor den tekst, der er valgt med musen i et tekstområde, bliver kopieret til det andet tekstområde, når man trykker på knappen:

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

public class LytTilKnap extends Applet //implements ActionListener// {
  private TextArea t1, t2;
  private Button kopierKnap;

  public void init()
  {
    String s = "Her er en tekst.\nMarkér noget af den og tryk Kopier...";
    t1 = new TextArea(s, 5,20);
    add(t1);
    kopierKnap = new Button("Kopiér>>"); //kopierKnap.addActionListener(this)// ;
    add(kopierKnap);
    t2 = new TextArea( 5,20);
    t2.setEditable(false);
    add(t2);
  }

  public void actionPerformed(ActionEvent e) //// kræves af ActionListener// {
    t2.setText(t1.getSelectedText() );
  }
}

Læg mærke til, at vi registrerer lytteren (som er applet-objektet selv) hos knappen.


forrige hjem næste
Eksempel - Linjetegning op Lyttere og deres metoder
linuxbog.old/java/java-events-ekstra-eksempler.txt · Last modified: by 127.0.0.1

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki

Brug af AI : Al tekst kán være uddrag af AI genereret tekst og kan være fejlbehæftet.
AI kan lave fejl og det kan mennesker også, men al tekst er gennemgået af et menneske for fejl, og personlig bias kan være tilføjet.