2
私はjavafxグラフを使ってJavaスイングアプリケーションをJFrame
に追加しています。ボタンをクリックすると、新しいウィンドウにチャートが表示されます。すべてが初めての周りに細かい動作しますが、チャート・ウィンドウを閉じて、もう一度ボタンをクリックの上、それは私が閉じるときfxPanel
かscene
をリセットする必要があると思うグラフを2回表示しようとするとjavafx swingがクラッシュする
fxPanel.setScene(scene);
ラインで、次のチャート・ウィンドウを表示する前にクラッシュします最初はチャートウィンドウでしたが、私が試したことはこれまでに何もできませんでした。以下は、私のグラフプロットクラスです。どのような助けも大いに感謝します。
public class PlotChart extends JFrame implements WindowListener {
private JFrame chartWindow = new JFrame("Commitment Of Traders");
public PlotChart(JFXPanel fxPanel) {
plotChart(fxPanel);
}
public void plotChart(JFXPanel fxPanel) {
final NumberAxis xAxis = new NumberAxis();
final NumberAxis yAxis = new NumberAxis();
final LineChart<Number,Number> lineChart = new LineChart<Number,Number>(xAxis,yAxis);
final Scene scene = new Scene(lineChart,800,600);
xAxis.setLabel("Week");
lineChart.setTitle("Commitment of Traders");
//Define a series
XYChart.Series commercials = new XYChart.Series<>();
XYChart.Series nonCommercials = new XYChart.Series<>();
XYChart.Series CLong = new XYChart.Series<>();
XYChart.Series CShort = new XYChart.Series<>();
commercials.setName("Dealers");
nonCommercials.setName("Hedge Funds");
//Populate series
for (int i=0;i<ReadCSV.getCommercials().size();i++) {
commercials.getData().add(new XYChart.Data(i,ReadCSV.getCommercials().get(i)));
nonCommercials.getData().add(new XYChart.Data(i,ReadCSV.getNonCommercials().get(i)));
}
lineChart.getData().add(commercials);
lineChart.getData().add(nonCommercials);
fxPanel.setScene(scene); // exception in this line
chartWindow.add(fxPanel);
chartWindow.setSize(800, 600);
chartWindow.setVisible(true);
chartWindow.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
chartWindow.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent windowEvent) {
ReadCSV.clearVars();
System.out.println("window closed");
}
});
}
WindowListener
メソッドのオーバーライドは、私はちょうど今も、この問題に出くわした
Welcome to Stackoverflow!質問にスタックトレースまたはエラーメッセージを引用してください(コードとしてスタックトレースをフォーマットしてください)。 –
こんにちはOle、返信いただきありがとうございます、それはちょうど凍っているエラーメッセージはありません。私はtry/catchで囲みましたが、まだエラーは出ません... –