SWT_AWT加载JFreeChart在Window8下显示不出JFreeChart的问题

今天终于把Window8上显示JFreeChart的问题解决了,需求是在SWT中使用JFreeChart,但JFreeChart要使用AWT的样式,不能使用SWT的样式(ChartComposite),即要使用SWT_AWT桥接来实现SWT中显示JFreeChart。

桥接的方式实现的JFreeChart在Win7上没问题,能直接显示出来,但是在Window 8上第一次加载要很长时间,而且显示不出JFreeChart。使用JFreeChart的swt例子的代码改进改成SWt_AWT测试也是同样问题,main方法中代码如下:

  fianel JFreeChart chart = ChartFactory.createTimeSeriesChart(
    "Legal & General Unit Trust Prices", // title
    "Date", // x-axis label
    "Price Per Unit", // y-axis label
    dataset, // data
    true, // create legend?
    true, // generate tooltips?
    false // generate URLs?
  );

  final Display display = new Display();

  Shell shell = new Shell(display);
  shell.setSize(600, 300);
  shell.setLayout(new FillLayout());
  shell.setText("Time series demo for jfreechart running with SWT");

  Composite comp = new Composite(shell, SWT.EMBEDDED);//SWT.EMBEDDED必须
  java.awt.Frame frame = SWT_AWT.new_Frame(comp);

  ChartPanel chartPanel = new ChartPanel(chart);
  frame.add(chartPanel);

  shell.open()
  while (!shell.isDisposed()) {
    if (!display.readAndDispatch())
      display.sleep();
  }

这样写Window8第一次打开会很卡,具体原因不知道,之后点击下界面JFreeChart会出现。花了一个星期的时间来看这个问题,想过以下方法:

1、通过给comp加CtrolEvent事件监听,然后模拟AWT的MosueEvent发给ChartPanel,来实现模拟点击,发现不是每次都有效。

2、先打开SWt的窗口,在窗口打开后向frame中添加chartPanel,在frame和chartPanel中间加一个JPanel,该方法在打开的时候能正常显示,窗口最大化时,如果JPanel没有添加布局没问题,添加了布局导致chartPanel会在最大化过程中刷新,就会出现JFreeChart不显示的情况。

最后都没招到好的方法,看了下往上说的加载JFreeChart有时确实会很卡,把ChartPanel的userBuffered标记设为false,就能快点。试了下没想到真的有用。修改代码如下:

  ChartPanel chartPanel = new ChartPanel(chart,false);

这个问题看了三天都没解决出来,今天都不想解决了,随便看了下网上相关的文章,试了下就解决了,哎,想起那句话“没多学一点知识,就少写一行代码”。花了那么多时间,最后仅仅是一个false的问题,真是好笑,生活的乐趣在于一个接着一个的惊喜,你永远不知道下一秒会发生什么,如果知道了还有什么意思呢。

时间: 2024-08-26 22:46:36

SWT_AWT加载JFreeChart在Window8下显示不出JFreeChart的问题的相关文章

实现图片加载从模糊到清晰显示的方法

1.通过代码控制 QQ相册最近做的一些优化方法解决了上诉两个方法的缺点和满足了用户查看照片的需求:第一时间看到照片大概情况和尽可能快的看到清晰的原图.该方法使用缩略图和原图同时加载并叠加显示,先加载缩略图并拉大显示,大图叠加在缩略图上面同时加载.缩略图很小通常很快就能给用户看到照片模糊的效果,大图加载过程中从上往下逐步覆盖缩略图,这样用户就可以看到加载过程中的大图. 如上如所示,本方法的处理步骤是:1).获取照片缩略图和原图的URL,获取照片的长和宽:2).加载并显示照片缩略图,将缩略图按照片的

DELPHI7加载UNICODE编码格式的TXT显示为乱码的解决方法

DELPHI7的STRING默认是ANSI编码,加载UNICODE编码格式的TXT显示为乱码,解决方法如下: procedure TForm1.Button1Click(Sender: TObject);var F:TFileStream; S:WideString; I:Integer; FileName:string;begin FileName := ExtractFilePath(Application.ExeName)+'20151214003.txt'; F:=TFileStream

ListView的为空、加载中以及出错的显示状态

public class EmptyLayout { private Context mContext; private ViewGroup mLoadingView; private ViewGroup mEmptyView; private ViewGroup mErrorView; private Animation mLoadingAnimation; private ListView mListView; private int mErrorMessageViewId; private

三维场景中加载道路图层,并显示道路名

三维场景作为最真实的地图,肯定需要道路信息.下面讲在三维场景中加载道路图层(矢量shp)并配置注记信息.数据:fly工程文件,道路中心线矢量(属性字段中有”道路名称“) (1)在fly工程中导入道路图层,参见 http://www.skylinecn.com/forum.p ... id=7&extra=page%3D1 注意在导入的过程中,需要 创建注记.如图1: (2)道路名称显示,以及各个参数设置 在实际的三维场景中,我们可以将道路中心线隐藏,或者将其线透明度设置的很低,重点突出道路名称信

安卓 WebView加载本地图片时居中显示

在一个项目中使用WebView显示gif图片(自定义的View无法放大gif),当图片过小时只在左侧显示,经过研究发现无论设置android:layout_gravity="center_horizontal"还是设置android:gravity="center_horizontal" 都无法居中显示,而且还设置了android:layout_width="wrap_content",但是实际上WebView并没有自适应内容,它的宽度占了屏幕宽

Java日志组件logback使用:加载非类路径下的配置文件并设置定时更新

Java日志组件logback使用:加载非类路径下的配置文件并设置定时更新 摘自: https://blog.csdn.net/johnson_moon/article/details/78874499 2017年12月22日 16:20:29 阅读数:868 标签: javalogback日志配置文件logback-xm 更多 个人分类: Java日志 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/johnson_moon/article/d

Android下拉刷新库,利用viewdraghelper实现,集成了下拉刷新,底部加载更多,数据初始加载显示loading等功能

项目Github地址:https://github.com/sddyljsx/pulltorefresh Android下拉刷新库,利用viewdraghelper实现. 集成了下拉刷新,底部加载更多,以及刚进入加载数据的loadview.包括了listview与gridview的改写. 效果1: 效果2: 效果3: 效果4: 效果5: 使用说明: imageList=(ListView)findViewById(R.id.image_list); imageAdapter=new ImageA

cocos2dx lua中异步加载网络图片,可用于显示微信头像

最近在做一个棋牌项目,脚本语言用的lua,登录需要使用微信登录,用户头像用微信账户的头像,微信接口返回的头像是一个url,那么遇到的一个问题就是如何在lua中异步加载这个头像,先在引擎源码里找了下可能会提供这个功能的地方,发现好像没有提供类似功能,那么只能自己动手写.所以我在ImageView这个类里面添加了一个成员方法,其实可以不写在ImageView里,而且我觉得非必需情况下还是不要修改引擎源码的好,因为如果源码改动比较多的话,将来引擎版本升级会比较麻烦.我写在ImageView里纯粹是想偷

c#如何实现从xml中加载树目录,并且显示完整的Text

谈到xml,相信有一定编程基础的童鞋们都比较清楚了.xml文件格式类似于嵌套的样式,这种独特的层次结构很容易使我们联想到目录树,因此这不禁让我们对两者之间产生一种牵线的想法.这不禁,使我们有这么一个问题:如何将xml存储的数据转换成目录树形式?? 首先我先贴一段xml代码: <nativeplace> <China text="中国" value="中国"> <ShanDong text="山东" value=&qu