Avatar billede aligncenter Nybegynder
06. maj 2001 - 23:53 Der er 6 kommentarer og
1 løsning

popup menu på Bean

jeg vill gerne lave en popup menu på disse to klasser men det virker ikke helt

import java.awt.*;
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;

public class DrawableComponent  extends java.awt.Canvas {
  protected int x;
  protected int y;

  protected Dimension dim;
  protected int h;
  protected int w;
  protected javax.swing.JPopupMenu jPopupMenu1;
 
  DrawableComponent(int x2,int y2)  {
  h = 30;
  w = 100;
  dim = new Dimension();
  dim.setSize(w,h);
  //this.x = x;
  //this.y = y;
  setSize(dim);
 
  jPopupMenu1 = new javax.swing.JPopupMenu();
 
        jPopupMenu1.add(\"properties\");
        jPopupMenu1.add(\"size\");
       
        jPopupMenu1.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mousePressed(java.awt.event.MouseEvent evt) {
                jPopupMenu1MousePressed(evt);
            }
        }
        );
   
 
 
 
  }

  public void fit(int h, int w)  {
 
  resize(w,h);

  }
 
  public Dimension getSize()  {
 
  return dim;
 
  }
 
 
  public void fitCanvasToImage(int w,int h)    {
 
  dim.setSize(w,h);
 
  }
  private void jPopupMenu1MousePressed(java.awt.event.MouseEvent evt) {
    jPopupMenu1.show ();
  }
}




import java.awt.*;
import java.awt.event.*;
import java.awt.event.*;
import java.awt.event.MouseEvent;
import java.awt.image.BufferedImage;

public  class DrawableString extends DrawableComponent implements MouseMotionListener,MouseListener {
String label;
private  Graphics G;
private BufferedImage img ;    
    Font font;
  FontMetrics fm;
  private boolean selected;
private Dimension dim;
private int h,w;


public DrawableString(int x2, int y2)    {
 
  super(x2,y2);
 
  addMouseMotionListener(this);
  addMouseListener(this);
  selected = false;
  dim = super.getSize();


/*
  super.fit(20,30);
 
 
  label = \"juffi\";
 
  font = new Font(label,5,14);
  fm = getFontMetrics(font);
*/
}

public void paint(Graphics g)  {
 
 
 
  int w2 = (dim.width / 2) - 10 ;
  int h2 = dim.height / 2;
 
  g.drawString(\"test power\",w2,h2);
 
  if (selected)    {
 
   
    g.drawRect(0,0,w -1 ,h - 1);
 
  }


}
   
public Image ImageCopy()  {

  return img;
 
}

public void mouseMoved(MouseEvent e) {
     
    }

public void mouseDragged(MouseEvent e) {
 
  System.out.println(\"m pressed at x :\" +e.getX());
  System.out.println(getLocation());
  Point p = getLocation();
  int x = p.x;
  int y = p.y;
  setLocation(x + e.getX(),y + e.getY());
       
       
}
  public void mousePressed(MouseEvent e) {
     
      h = dim.height;
      w = dim.width;
     
     
      selected = true; repaint();
    }

    public void mouseReleased(MouseEvent e) {
        selected = false; repaint();
        System.out.println(\"released\");
    }

    public void mouseEntered(MouseEvent e) {
     
    }

    public void mouseExited(MouseEvent e) {
     
    }

    public void mouseClicked(MouseEvent e) {
     
    }

}//end





Avatar billede delbing Nybegynder
07. maj 2001 - 00:29 #1
Kan du ikke være lidt mere specifik? Kan det compile, går det ned, sker der ingenting? Hvad er problemet?
Avatar billede disky Nybegynder
07. maj 2001 - 08:45 #2
hvorfor siger du \'på bean\' i din overskrift ? Dette har intet med en Java Bean at gøre.
Avatar billede kj-1 Nybegynder
07. maj 2001 - 09:47 #3
hvorfor er dette ikke en bea ?

Disky dit svar er blot en kommentar
Avatar billede disky Nybegynder
07. maj 2001 - 09:49 #4
kj-1: hvorfor pokker skal du bestemme om det jeg skriver er en kommentar eller et svar ???

Og læs specifikationen på en Java Bean så ved du hvorfor
Avatar billede logical Nybegynder
07. maj 2001 - 10:39 #5
En detalje, lad være med at adde din mouselistener til dit popupvindue, men add det til dig selv. Så vil det blive en smule nemmere for dig :-)
Det er lidt svært at få popup\'en op, når man skal trykke på popup\'en for at få den frem.

Derudover, lad være med at blande awt og swing. Din JPopupMenu vil have problemer med placering i forhold evt. awt komponenter. Der findes i awt en PopupMenu klasse, som du må nøjes med
Avatar billede logical Nybegynder
07. maj 2001 - 10:43 #6
Rettet til det her, virker det fint

        jPopupMenu1 = new PopupMenu();
 
        jPopupMenu1.add(new MenuItem(\"properties\"));
        jPopupMenu1.add(new MenuItem(\"size\"));
        this.add(jPopupMenu1);
        addMouseListener(new java.awt.event.MouseAdapter() {
            public void mousePressed(java.awt.event.MouseEvent evt) {
                jPopupMenu1MousePressed(evt);
            }
        }
        );
   
 
  private void jPopupMenu1MousePressed(java.awt.event.MouseEvent evt) {
    jPopupMenu1.show(this, evt.getX(), evt.getY());
    System.out.println(\"Showing\");
  }
Avatar billede kj-1 Nybegynder
07. maj 2001 - 15:17 #7
hallo disky jeg syntes bare at dit svar lugtede ækelt af kommentar, men sådan er der jo mange der scorer billige point her på eksperten.

LOL :)

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