Gå til innhold

sender JButton til egen klasse => egen klasse "mister" den... hjelp!


Anbefalte innlegg

ok, saken er som så. jeg bruker netbeans, og har brukt gui-builder til å lage en enkel gui med blandt annet JButtons. jeg vil styre disse knappene (bakgrunnfarge osv) fra min egen klasse(kaller den myClass fra nå). jeg oppretter et objekt av myClass i gui klassen, og sender med en JButton. i myClass sin konstruktør setter jeg en referanse til å peke på JButton objektet. hvis jeg deretter prøver å sette Jbutton sin bakgrunnsfarge fra myClass får jeg nullpoiterexception! noen som kan skjønne hvorfor?

 

 

 

forenklet kode:

 

public class gui extends javax.swing.JFrame { //generert gui klasse

public gui() {

initComponents();

}

//Generert kode

public javax.swing.JButton JButtonObj;

JButtonObj = new javax.swing.JButton();

//egen kode

public myClass myClassObj = new myClass(JButtonObj);

 

}//end gui

 

public class myClass {

JButton _jb;

public myClass(JButton jb) { //konstruktør

_jb = jb;

}

public void method() {

_jb.setBackground(Color.ORANGE); //her går det gærent

}

}//end myclass

Endret av Hr_Pengesekk
Lenke til kommentar
Videoannonse
Annonse

Dette kjører finfint, så du har nok utelatt selve pointet fra koden du posta vil jeg tro:

 

import java.awt.Color;
import javax.swing.JButton;


public class gui extends javax.swing.JFrame { //generert gui klasse

   public gui() {
   }
   public javax.swing.JButton jButtonObj   = new javax.swing.JButton();
   public myClass myClassObj = new myClass(jButtonObj);

   private class myClass {

       JButton _jb;

       public myClass(JButton jb) { //konstruktør
           _jb = jb;
       }

       public void method() {
           _jb.setBackground(Color.ORANGE); //her går det gærent
       }
   }//end myclass

   public static void main(String arg[]) throws Exception {
       gui myGui = new gui();
       myGui.myClassObj.method();
       System.out.println("successfully done");
   }
}

Lenke til kommentar

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

Laster...
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...