次のコードで頂点 v4 のスタイルを変更しようとしています。スタイルを変更してもエラーが発生します。setVisible(false) などの代わりに他のアクションを実行しようとしましたが、動作します。だから、それは私が使用している方法でなければなりません。何を変更すればよいですか?
public class graphgen extends JFrame {
JFrame frame ;
static JGraph jgraph ;
final static mxGraph graph = new mxGraph() {
final static mxGraphComponent graphComponent = new mxGraphComponent(graph);
Object cell ;
Object v1, v2, v3, v4, v5, v6, v7, v8, w1, w2, w3, w4, w5, w6, w7, w8, w9, w10, w11, w12, w13, w14, w15, w16, w17, w18, z1, z2, z3, z4, y1, y2, y3, y4, y5, y6 ;
private static final int OPACITY_PALE = 20;
private static final int OPACITY_HL = 100;
public graphgen() {
gen();
}
public void gen(){
Hashtable<String, Object> oldstyle = new Hashtable<String, Object>();
oldstyle.put(mxConstants.STYLE_OPACITY, OPACITY_PALE);
....
Hashtable<String, Object> newstyle = new Hashtable<String, Object>();
newstyle.put(mxConstants.STYLE_OPACITY, OPACITY_HL);
...
stylesheet.putCellStyle( oldstyle, oldstyle);
stylesheet.putCellStyle( newstyle, newstyle);
Object parent = graph.getDefaultParent();
graph.getModel().beginUpdate();
try
{....
Object v4 = graph.insertVertex(parent, null, "label", 380, 80, 80,
30, oldstyle);
...
if (GC.contains("aaa")) {
graph.getView().getState(v4).setStyle(newstyle);
graphComponent.refresh();
graph.repaint();
}
....}
finally
{
graph.getModel().endUpdate();
}
getContentPane().add(graphComponent);
add(graphComponent);
...
}
public static void main(String[] args)
{
graphgen frame = new graphgen();
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setSize(1600, 1200);
frame.setVisible(true);
}
}
次のエラーが表示されます。
Exception in thread "main" java.lang.NullPointerException
at graphgen.gen(graphgen.java:482) // line with raph.getView().getState(v4).changeStyle(newstyle);