23. februar 2005 - 20:18 Der er 4 kommentarer og
1 løsning

reference problemer

Hej Allesammen..

Jeg har i et program med følgende konstellation ...GUI-KONTROL-CHARACTERLIST-CHARACTER-ICON..oprettet et icon udfra en personklassen CHARACTER:

public class CharIcon implements Serializable
{
  Character character;
  ImageIcon imageicon;
  String iconname;
  JLabel charLabel;
 
  public CharIcon(Character character, String iconname)
  {
    this.iconname = iconname;

    imageicon = new ImageIcon(iconname);
    charLabel = new JLabel(imageicon);

    charLabel.setBounds(new Rectangle(155, 40, imageicon.getIconWidth(), imageicon.getIconHeight())); 
    charLabel.setLocation(8,8);
    charLabel.addMouseListener(new java.awt.event.MouseAdapter()
    {
      public void mouseClicked(MouseEvent e)
      {
        if (e.getButton()==3 &&  e.getClickCount() == 2)
            højreDobKlik(e);
        else
         
        if ( e.getClickCount() == 2)
              dobbeltKlik(e);
        }
    });   
      charLabel.setVisible(true);
     
    add_c(charLabel);   
  }
 
  public void add_c(final Component c)
    {    c.addMouseMotionListener(new MouseMotionAdapter()
      {    public void mouseDragged(MouseEvent m)
      {
          c.setLocation((c.getX()+m.getX())-(imageicon.getIconWidth()/2),(c.getY()+m.getY())-(imageicon.getIconHeight()/2));
      }});
          //this.character.characterList.control.gui.desktop.add(c);
         
    }
   
  private void dobbeltKlik(MouseEvent e)
  {
    System.out.println("Dobbeltklik");
    //System.out.println(character.getHitpoints());
  }
  private void højreDobKlik(MouseEvent e)
  {
    System.out.println("højre/Dobbeltklik");
  }

Derefter vil jeg gerne have vist iconet på desktoppen med:
(Denne bid er tager fra en FrameKlasse)
P.s. hver Icon er knyttet til en Character

Character c = gui.control.søgCharacter(name);
gui.desktop.add(c.getIcon());

Spørgsmålet lyder så....hvorfor har dette icon, der bliver kaldt og vist på desktoppen, ikke de funktioner som den er kodet til at ha fra CharIcon klassen???

Hvordan refererer jeg disse ting korrekt ???
Avatar billede kalp Novice
23. februar 2005 - 20:22 #1
public CharIcon(Character character, String iconname)

du bruger aldrig character så vidt jeg kan se

og derfor heller ikke

Character character;
23. februar 2005 - 20:33 #2
jeg kommer til at bruge character senere under MouseEvent...Jeg vil hente information om mine characterer gennem iconet...
Avatar billede kalp Novice
23. februar 2005 - 20:40 #3
hvilke funktioner er det du snakker om fra CharIcon ? Du har

mouseClicked(MouseEvent e)
og
add_c(final Component c)

har dit ikon ikke disse?
23. februar 2005 - 20:58 #4
nej...når jeg trykker på ikonet eller prøver at flytte rundt på det, sker der intet.

Problemet er opstået efter at jeg har fjernet alle dobbeltbindinger gennem klasserne

Før havde jeg et metodekald, der så således ud:

this.character.characterList.kontrol.gui.desktop.add(c)...og det virkede fint, men gjorde således også, at jeg var nød til at Serilisere samtlige klasser i programmet
25. februar 2005 - 00:55 #5
Ok
Har klaret den selv...Problemet vat ikke referencen,for den virker fint sålænge jeg ikke lukke programmet. Problemet er snarere min input stream, for referencen ryger sig en tur, når jeg loader programmet ind.

hmmm....
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