Avatar billede nutten Nybegynder
15. november 2001 - 20:13 Der er 4 kommentarer og
1 løsning

link i applet

Hvordan får jeg en tekst i en label til at være et link?
Teksten i denne label er en emailadresse og det ville være snedigt, hvis man så kunne trykke på denne emailadresse, som i HTML???
Avatar billede logical Nybegynder
15. november 2001 - 20:15 #1
Add en mouselistener til din applet, og fang museclick manuelt. Det er måden at gøre det på. Sig til hvis du skal bruge et eksempel.
Avatar billede nutten Nybegynder
15. november 2001 - 20:17 #2
Jeg tror gerne jeg vil benytte mig af dit tilbud :-)
Avatar billede logical Nybegynder
15. november 2001 - 20:30 #3
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.net.*;

public class Link extends Applet implements MouseListener {

    private Label label=new Label(\"logical@logical.dk\");
    private Color highlight = Color.red;
    private Color normal = null;
    public void init() {
        add(label);
        label.addMouseListener(this);
    }

    public void mouseExited(MouseEvent mouseEvent) {
        if (normal != null) {
            label.setForeground(normal);
            normal = null;
        }
    }

    public void mouseClicked(MouseEvent mouseEvent) {
        try {
            URL u = new URL(\"mailto:\" + label.getText());
            getAppletContext().showDocument(u);
        } catch (MalformedURLException e) {
            showStatus(e.getMessage());
        }
    }
   
    public void mouseEntered(MouseEvent mouseEvent) {
        normal = label.getForeground();
        label.setForeground(highlight);
    }

    // Unused
    public void mouseReleased(MouseEvent mouseEvent) {}
    public void mousePressed(MouseEvent mouseEvent) {}
   
   
}
Avatar billede nutten Nybegynder
15. november 2001 - 21:33 #4
Jeg kan godt se det er den rigtige løsning, MEN jeg står over et lille problem.

E-mail adresserne hentes i en MySql-database, og der kan enten være 1 eller 2. Denne MouseListener skal så erklæres for hver af dem?

Men jeg kan ikke lige greje hvordan fanden jeg klarer den ?
Avatar billede logical Nybegynder
16. november 2001 - 02:58 #5
Hvis du har to labels??

init() {
  label1.addMouseListener(this);
  label2.addMouseListener(this);
}

public void mouseClicked(MouseEvent mouseEvent) {
  try {
    Label l = (Label) mouseEvent.getSource(); // Den klikkede label
    String address = l.getText();
    if (address == null || adress.trim().length() == 0) return;

    URL u = new URL(\"mailto:\" + address);
    getAppletContext().showDocument(u);
  } catch (MalformedURLException e) {
    showStatus(e.getMessage());
  } catch (ClassCastException cce) {
    showStatus(cce.getMessage());
  }
}
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester