我正在尝试创建一个显示使用Graphics2D方法绘制的图形的程序。我有一个名为Model的类,其中包含我想以图形方式表示的财务信息。在程序的主要方法中,我做了以下声明并调用,
m = new Model(stock, strike, interest, dividend, volatility, expiration);
m.addGraph(fSelect, vSelect);
模型函数构造函数只是将参数传递给类中的某些字段。 fSelect和vSelect告知Graph类我创建了什么函数来绘制图形以及要绘制的图形变量。 addGraph方法看起来像,
public void addGraph(int fSelection, int vSelection){
//Why is my panel not showing up?
graphPanel = new Graph(fSelection, vSelection, thisStock, thisStrike, thisInterest,
thisDividend, thisExpiration, thisVolatility);
JFrame jf = new JFrame();
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.add(graphPanel);
jf.setSize(300, 300);
graphPanel.drawGraph();
jf.setVisible(true);
}
Graph类扩展了JPanel类。它的构造函数看起来像这样,
public Graph(int whichFunction, int whichVariable, double whichStock, double whichStrike, double whichInterest,
double whichDividend, double whichExpiration, double whichVolatility){
super();
//...pass arguments into class fields
}
当我运行程序时,我得到一个空白的JFrame。我不知道为什么它是空白的。我必须在drawGraph方法中做错事,或者至少我正在考虑问题的根源。 drawGraph方法的要点是,
try{
Graphics2D g2 = (Graphics2D) this.getGraphics();
//draw stuff
//...
Toolkit.getDefaultToolkit().sync();
g2.dispose();
}
catch(Exception e) { }
我在try子句中调用各种Graphics2D方法,如fillRect,drawLine等。这是在JPanel上绘图的正确方法还是我错过了什么?