mxGraph基于用户对象的自定义Swing画布



我想能够建立一个基于属性的自定义Swing画布由mxCell引用的'值'对象(例如,能够在一个单元格内绘制n个Jbuttons,其中n是存储在值对象中的数字)。此外,有人知道是否有可能处理自定义Swing Canvas的事件?

我已经插入了一个自定义对象在mxCell的值通过重新定义在我的自定义mxGraph:

public void drawState(mxICanvas canvas, mxCellState state,boolean drawLabel)

public String convertValueToString(Object cell)

我还必须重新定义mxGraphComponent:

graphComponent = new mxGraphComponent(graph)
{
public mxInteractiveCanvas createCanvas()
{
return new myCanvas(this);
}
};

myCanvas extends mxInteractiveCanvas里面我重新定义了

public void drawVertex(mxCellState state, String label)
{
Object value = ((mxCell) state.getCell()).getValue();
Pattern p = (Pattern)value;
for (int i = 0; i < p.length; i++) {
rendererPane.paintComponent(g, new JButton("hi"), graphComponent,
(int) (state.getX() + translate.getX()+i*state.getWidth()/p.length),
(int) (state.getY() + translate.getY()),
(int) state.getWidth()/p.length, (int) state.getHeight(), true);
}
}

问题是我们在Object value = ((mxCell) state.getCell()).getValue();上有一个nullpointerException

好的,问题是我试图在mxCell Edge值中访问空指针的参数,该值初始化为null

最新更新