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