22. januar 2000 - 00:23Der er
1 kommentar og 1 løsning
PopupMenu i Java
Hvad skal der til for at lave en PopupMenu der reagerer på højreklik i en dialog box? Skal jeg implementere en MouseListener og så køre den fra en public void MouseClicked(), eller skal jeg bruge enableEvents(AWTEvent.MOUSE_EVENT_MASK); sammen med public void processMouseEvent (MouseEvent e)?
Jeg har erklæret min PopupMenu med de elementer der skal i, men kan ikke få den til at blive triggered.
Virksomheder er på vej fra store sprogmodeller, der svarer på spørgsmål, til AI-agenter, der kan udføre opgaver på egen hånd. Det gør teknologien mere nyttig – og langt mere risikabel.
Har du et generelt problem med PopupMenu eller er det specielt i en dialog-boks? Bruger du AWT eller Swing? ---- Jeg har lavet et lille eksempel [delvist fra The Java Tutorial] på en PopupMenu i et alm. vindue (Frame) // AB 27.01.2000, eksempel på (virkningsløs) popup-menu // Frit efter The Java Tutorial side 452-454 + 821-824 import java.awt.*; import java.awt.event.*;
class MenuWindow extends Frame { private PopupMenu popup;
public MenuWindow() { this.setLayout(new FlowLayout()); // VIGTIG, ellers er der kun plads til én komponent i vinduet // - og så ryger popup ud, da den er adderet før label. // En Frame har pr. default BorderLayout popup = new PopupMenu(); this.add(popup); popup.add(new MenuItem("Hej")); popup.add(new MenuItem("med")); popup.add("dig");
MouseListener listener = new PopupListener(); this.addMouseListener(listener); Label label = new Label("En label"); this.add(label); label.addMouseListener(listener); // popup-menu også tilgængelig over labelen // Hvis popup-menuen skal være tilgængelig over alle komponenter i vinduet, // så skal alle komponenterne addere listener. }
public static void main(final String [] args) { MenuWindow window = new MenuWindow(); window.setSize(450, 200); window.setVisible(true); }
class PopupListener extends MouseAdapter { public void mousePressed(final MouseEvent e) { maybeShowPopup(e); }
public void mouseReleased(final MouseEvent e) { maybeShowPopup(e); }
Tak for hjælpen, selv om jeg havde fået styr på det. Det var min MouseListener, det var mit første argument i popup.show(e.getComponent(), e.getX(), e.getY());
som var forkert + at jeg havde blandet MouseAdaptoren sammen med MouseListeneren. Tak for eksemplet.
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.