欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

在SWT中使用ChartDirector

系統 1895 0
昨天晚上看到有人詢問,回答一下。

因為JFrame繼承自Frame,是父子關系,所以Frame不能強轉為JFrame使用。但是,卻有取巧的方法令SWT操作Swing~

//JFrame實例
JFrame frame = new JFrame();
//獲得容器
Container container = frame.getContentPane();
//畫布
Canvas canvas = new Canvas();
//容器加載畫布
container.add(canvas,BorderLayout.CENTER);
//顯示
frame.setVisible(true);
//獲得Display
Display display = new Display();
//轉換canvas不就得了~~~為什么能轉換?看看Frame繼承自誰就知道了……
Shell shell = SWT_AWT.new_Shell(display,canvas);
//布局
shell.setLayout(new FillLayout());
//SWT按鈕加載
Button button = new Button(shell,SWT.PUSH);
button.setText("SWT使用JFrame");
shell.pack();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()){
display.sleep ();
}
}


另外,再說一種利用new_Frame的方式,先寫一個ChartDirector例子,應用了兩個類。

DemoModule
... .java

package org.test.chartdir;

/***/ /**
*<p>
*Title:LoonFramework
*</p>
*<p>
*Description:
*</p>
*<p>
*Copyright:Copyright(c)2007
*</p>
*<p>
*Company:LoonFramework
*</p>
*
*
@author chenpeng
*@email:ceponline@yahoo.com.cn
*
@version 0.1
*/

public interface DemoModule ... {

public StringtoString();

public int getNoOfCharts();

public void createChart(ChartDirector.ChartViewerviewer, int index);

}


CakyDemo.java

package org.test.chartdir;

import ChartDirector.ChartViewer;
import ChartDirector.PieChart;

/***/ /**
*<p>Title:LoonFramework</p>
*<p>Description:</p>
*<p>Copyright:Copyright(c)2007</p>
*<p>Company:LoonFramework</p>
*
@author chenpeng
*@email:ceponline@yahoo.com.cn
*
@version 0.1
*/

public class CakyDemo implements DemoModule ... {

public StringtoString() ... { return " ChartDirector餅圖 " ;}

public int getNoOfCharts() ... { return 2 ;}

public void createChart(ChartViewerviewer, int index)
... {
int angle = 0 ;
boolean clockwise = true ;
if (index != 0 ) ... {
angle
= 90 ;
clockwise
= false ;
}


double []data = ... { 25 , 18 , 15 , 12 , 8 , 30 , 35 } ;

String[]labels
= ... { " Labor " , " Licenses " , " Taxes " , " Legal " , " Insurance " ,
" Facilities " , " Production " }
;

PieChartc
= new PieChart( 280 , 240 );


c.setPieSize(
140 , 130 , 80 );

if (clockwise) ... {
c.addTitle(
" Start " + angle);
}
else ... {
c.addTitle(
" Start " + angle);
}


c.setStartAngle(angle,clockwise);

c.set3D();

c.setData(data,labels);

c.setExplode(
0 );

viewer.setImage(c.makeImage());

viewer.setImageMap(c.getHTMLImageMap(
" clickable " , "" ,
" title='{label}:US${value}K({percent}%)' " ));
}


}



我構建一個ShellSwingToSWT.java用作演示:

package org.test.chartdir;

import java.awt.BorderLayout;

import java.awt.Canvas;

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;

import org.eclipse.swt.SWT;
import org.eclipse.swt.awt.SWT_AWT;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.FillLayout;

import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

import ChartDirector.ChartViewer;

/***/ /**
*<p>
*Title:LoonFramework
*</p>
*<p>
*Description:
*</p>
*<p>
*Copyright:Copyright(c)2007
*</p>
*<p>
*Company:LoonFramework
*</p>
*
*
@author chenpeng
*@email:ceponline@yahoo.com.cn
*
@version 0.1
*/

public class ShellSwingToSWT ... {

public static void main(String[]args) ... {

int width = 600 ;

int height = 400 ;
// ChartDirector測試
DemoModuledemo = new CakyDemo();

JFrameframe
= new JFrame(demo.toString());

frame.addWindowListener(
new WindowAdapter() ... {
public void windowClosing(WindowEvente) ... {
System.exit(
0 );
}

}
);
frame.getContentPane().setLayout(
new FlowLayout(FlowLayout.LEFT));
frame.setSize(width,height);

for ( int i = 0 ;i < demo.getNoOfCharts(); ++ i) ... {
ChartViewerviewer
= new ChartViewer();
demo.createChart(viewer,i);
frame.getContentPane().add(viewer);
}


// 獲得容器
Containercontainer = frame.getContentPane();

Displaydisplay
= new Display();

Shellshell
= new Shell(display,SWT.CLOSE);
shell.setSize(
new Point(width,height));
shell.setLayout(
new FillLayout());
shell.setText(
" ChartDirectorinSWT " );
// 新建swt組件
Compositecomposite = new Composite(shell,SWT.NO_BACKGROUND
| SWT.EMBEDDED);
// 注入組件,并返回為frame
Framefrm = SWT_AWT.new_Frame(composite);
// 加載容器
frm.add(container);
// 打開shell
shell.open();
while ( ! shell.isDisposed()) ... {
if ( ! display.readAndDispatch()) ... {
display.sleep();
}


}

}


}


其實也沒什么可說的,只不過利用轉換后的Frame載入JFrame的
container罷了。

這兩種方式都可以實現Swing在SWT中的顯示

在SWT中使用ChartDirector

只不過第一種利用Swing窗體的hWnd實例,一種在新建窗體中顯示Frame罷了。

關于AWT/Swing在SWT中顯示的原理其實很簡單,為此昨天還寫了個在AWT/Swing實現SWT功能的例子,一會有時間整理下發上來。

在SWT中使用ChartDirector


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!?。?/p>

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 一本一道dvd在线播放器 | 欧美一级网站 | 九九亚洲精品 | 亚洲精品成人AA片在线播 | 欧美精品成人a多人在线观看 | 亚洲第一色视频 | 波多野结衣亚洲一区 | 91精品国产高清久久久久久91 | 国产成人精品免费影视大全 | 91精品国产免费久久 | 91亚洲精品在线观看 | 色综合a| 成人影院欧美大片免费看 | 日韩精品一区二区三区中文字幕 | 精品亚洲成a人片在线观看 在线看片h站 | 可以免费看黄色 | 99久久精品国产免看国产一区 | 一区影院 | 五月婷婷丁香 | 精品一二区 | 国产欧美日韩综合精品一区二区 | 欧美操操操 | 毛片在线免费观看完整版 | www成人国产在线观看网站 | 日本午夜大片免费观看视频 | 欧美激情一区二区三区中文字幕 | 亚洲一区二区三区首页 | 久热免费在线视频 | 六月激情| 国产成人aaa在线视频免费观看 | 日本又黄又粗暴的gif动态图含羞 | 日韩欧美在线免费观看视频 | 欧美精品色 | 中文字幕在线免费看 | 色五月婷婷成人网 | 在线三级电影 | 日韩成人一区二区 | 欧美黑人xxx | 香蕉久草视频 | 一区二区三区视频 | 欧美三级短视频 |