Avatar billede gedebuk Nybegynder
02. september 2002 - 13:58 Der er 2 kommentarer og
2 løsninger

Popup i applet

Hejsa!

Jeg har en kurve i en Swing-applet. Når man trykker på kurven, vil jeg gerne have vist et popup-vindue. Det skal være lidt ligesom en ToolTipText, men det skal komme, hvor man nu har trykket med musen (vha. en MouseListener).
Jeg kan dog ikke helt finde ud af, hvordan popup-vinduet skal laves.
Der findes en klasse Popup i javax.swing, men jeg kan ikke få den til at virke.
Har nogen en god idé til at lave popup-vinduet med.

På forhånd tak, Mads
Avatar billede aslan Nybegynder
02. september 2002 - 16:58 #1
f.eks
  JOptionPane.showMessageDialog(this,
  "Dette er en popup",
  "Oplysning",
  JOptionPane.PLAIN_MESSAGE);
Avatar billede gedebuk Nybegynder
02. september 2002 - 21:06 #2
Ja, det er en mulighed, men den er ikke optimal... Jeg ville gerne, hvis den kunne komme på en bestemt koordinat.

Er der nogle idéer til det?
Avatar billede soreno Praktikant
02. september 2002 - 22:00 #3
prøv følg:
import javax.swing.*;
import java.awt.*;

public class JPop extends JDialog
{
    public JPop(Frame owner, String title, int x, int y)
    {
    super(owner, title);
    this.setSize(100, 200);
    this.setLocation(x, y);
    String tekst = "x: " + x + " y: " + y;
    JLabel label = new JLabel(tekst);
    this.getContentPane().add(label);
    this.show();
    }
}

med følgende som testklasse:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class TestKlasseSwing extends JFrame implements WindowListener, MouseListener
{
    private int frameWidth = 640;
    private int frameHeight = 480;
   
    public TestKlasseSwing()
    {
        createFrame();
    }
   
    private void createFrame()
    {
        setTitle("TestKlasseSwing");
        setResizable(false);
        addWindowListener(this);
    addMouseListener(this);
   
        //Center Frame
        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        setSize(new java.awt.Dimension(frameWidth, frameHeight));
        setLocation( (screenSize.width-this.getWidth()) / 2, (screenSize.height - this.getHeight()) / 2);
    }

    public void windowOpened(WindowEvent e){}
    public void windowClosing(WindowEvent e){ dispose(); System.exit(0);}
    public void windowClosed(WindowEvent e){}
    public void windowIconified(WindowEvent e){}
    public void windowDeiconified(WindowEvent e){}
    public void windowActivated(WindowEvent e){}
    public void windowDeactivated(WindowEvent e){}
   
    public void mouseReleased(MouseEvent e){}
    public void mousePressed(MouseEvent e){}
    public void mouseExited(MouseEvent e){}
    public void mouseEntered(MouseEvent e){}
    public void mouseClicked(MouseEvent e)
    {
    new JPop(this, "MyPop", e.getX(), e.getY());
    }
}

class Main
{
    public static void main(String args[])
    {
          new TestKlasseSwing().show();
    }
}

det kunne være du kan bruge det som inspiration.. :-)
Avatar billede gedebuk Nybegynder
03. september 2002 - 12:38 #4
soreno >> Fint eksempel, som jeg ganske rigtigt har brugt som inspiration :)
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