当我创建JFrame时,我无法与之交互。我无法调整大小或单击标题按钮,但我可以移动窗口。甚至像以下那样简单:
JFrame win = new JFrame();
win.setVisible(true);
会出现问题。启动应用程序时,它将显示在控制台中:
2015-03-17 10:06:47.261 java[1406:507] [Java CocoaComponent compatibility mode]: Enabled
2015-03-17 10:06:47.261 java[1406:507] [Java CocoaComponent compatibility mode]: Setting timeout for SWT to 0.100000
显然,混合使用Swing和SWT组件时可能会发生这种情况。虽然我的项目确实使用了包含swtgraphics2d.jar
的JFreeChart,但我没有使用SWT库。有没有办法解决这个问题,同时仍然使用JFreeChart?
答案 0 :(得分:2)
请务必使用ChartPanel
和JFreeChart
add()
创建JFrame
BorderLayout.CENTER
。默认位置为private void display() {
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
YourDataset data = createYourDataset(…);
JFreeChart chart = createYourChart(…);
f.add(new ChartPanel(chart);
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
,可让您的图表随框架调整大小。
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new YourClass().display();
}
});
}
另外,请务必从event dispatch thread开始。
{{1}}
答案 1 :(得分:1)
当我移除(现在已知)不必要的罐子时,问题就消失了,包括swtgraphics2d.jar
。