Problem oko iscrtavanja elemenata na JInternalFrame

Problem oko iscrtavanja elemenata na JInternalFrame

offline
  • Pridružio: 17 Jan 2015
  • Poruke: 1

Pozdrav ljudi, imam problem oko nekog projekta u javi. Nisam bas jako vicna sa javom, pocetnik sam pa ukoliko nesto ne napisem kako treba ne zamerite Smile Naime treba da se na JInternalFrame iscrta neki prost element(kvadrat) klikom na dugme u toolbox-u.
U nastavku je kod iz klase NacrtajKvadrat:

package action; import gui.MejnFrejm; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; import javax.swing.KeyStroke; import DeloviProzora.DiagramFrame; public class NacrtajKvadrat extends AbstractAction{    NacrtajKvadrat(){       putValue(ACCELERATOR_KEY,KeyStroke.getKeyStroke(               KeyEvent.VK_3, ActionEvent.CTRL_MASK));       putValue(SMALL_ICON, loadIcon("../images/extend"));       putValue(NAME, "Kvadrat");       putValue(SHORT_DESCRIPTION, "Kvadrat");       }    @Override    public void actionPerformed(ActionEvent e2) {       ((DiagramFrame) MejnFrejm.getInstance().getDesktop().getSelectedFrame()).getDijagram().startKvadratstate();       ((DiagramFrame) MejnFrejm.getInstance().getDesktop().getSelectedFrame()).getDijagram().getDijagramselekcije().removeAllFromSelectionList();    } }

Ovo je klasa Dijagrami u kojoj se nalazi metoda startKvadratState:

package model; import model.DiagramSelectionModel; import java.io.Serializable; import java.util.Enumeration; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.MutableTreeNode; import javax.swing.tree.TreeNode; import state.StateMenadzer; import DeloviProzora.DiagramFrame; import model.DiagramModel; public class Dijagrami extends DefaultMutableTreeNode implements Serializable{    private String name;    transient private DiagramFrame dijagram;    private Projekti projekat;    private DiagramModel model=new DiagramModel();    transient private DiagramSelectionModel dijagramselekcije;    transient private StateMenadzer statemanager=new StateMenadzer(this);        private Object readResolve() {       statemanager = new StateMenadzer(this);       return this;    }       public void startKvadratstate(){       statemanager.setKvadratstate();    }    public String toString(){       return name;    }    public DiagramFrame getDiagram(){       return dijagram;    }    public void setDiagram(DiagramFrame dijagram){       this.dijagram=dijagram;    }       public Projekti getProject(){       return projekat;    }    public void setProject(Projekti projekat){       this.projekat=projekat;       }    public String getName() {       return name;    }    public void setName(String name) {       this.name = name;    }    public void setModel(DiagramModel model) {       this.model = model;    }    public DiagramModel getModel() {       return model;    }    public void setDijagramselekcije(DiagramSelectionModel dijagramselekcije) {       this.dijagramselekcije = dijagramselekcije;    }    public DiagramSelectionModel getDijagramselekcije() {       if (dijagramselekcije == null)          dijagramselekcije = new DiagramSelectionModel();       return dijagramselekcije;    }    public void setStatemanager(StateMenadzer statemanager) {       this.statemanager = statemanager;    }    public StateMenadzer getStatemanager() {       return statemanager;    } }

i klasa StateMenadzer gde se nalazi ova setKvadratState metoda:

package state; import gui.MejnFrejm; import model.Dijagrami; public class StateMenadzer{    private State trenutnostanje;        KvadratState kvadratstate;    /*TrougaoState trougaostate;    KrugState krugstate;    ZvezdaState zvezdastate;    SelectState selectstate;    MoveState movestate;    ResizeState resizestate;    */    public StateMenadzer(Dijagrami dijagram){       kvadratstate = new KvadratState(dijagram);       /*KrugState = new CircleState(dijagrami);       TrougaoState = new TriangleState(dijagrami);       SelectState = new SelectState(dijagrami);       ZvezdaState = new StarState(dijagrami);       ResizeState = new ResizeState(dijagrami);       MoveState = new MoveState(dijagrami);       TrenutnoStanje = selectstate;*/    }    public KvadratState getKvadratstate() {       return kvadratstate;    }    public void setTrenutnostanje(State trenutnostanje) {       this.trenutnostanje = trenutnostanje;    }    public State getTrenutnostanje() {       return trenutnostanje;    }    public void setKvadratstate() {       // TODO Auto-generated method stub       trenutnostanje=kvadratstate;       MejnFrejm.getInstance().getStatusBar().setStatus("Dodaj element");       } }


Ovo je greska koju mi izbacuje:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at action.Kvadrat.actionPerformed(Kvadrat.java:26)
i vidim da je greska negde u metodi startKvadratState, al ne mogu da provalim gde. Ukoliko neko ima ideja bilo bi super da me bar malo usmeri gde da gledam. Hvala Smile



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
Ko je trenutno na forumu
 

Ukupno su 1343 korisnika na forumu :: 46 registrovanih, 5 sakrivenih i 1292 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 357magnum, A.R.Chafee.Jr., Atomski čoban, bigfoot, bojcistv, darkangel, DeerHunter, Dežurni pod palubom, Frunze, Georgius, GveX, ikan, ivan979, kinez88, kunktator, kybonacci, Litostroton, LUDI, Luka Blažević, mercedesamg, milenko crazy north, milos.cbr, misa1xx, mnn2, Nemanja.M, nemkea71, nenad81, Neretva, oganj123, oldtimer, panonski mornar, panzerwaffe, ruger357, sap, sasa87, shone34, Sirius, slonic_tonic, stalja, stegonosa, Tvrtko I, vladaa012, voja64, wolf1, wolf431, zlaya011