欧美三区_成人在线免费观看视频_欧美极品少妇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條評論
主站蜘蛛池模板: 亚洲精品在线91 | 狠狠一区 | 日产国产欧美视频一区精品 | 欧美日韩中文字幕一区二区高清 | 久久综合一区二区三区 | 日本精品久久久一区二区三区 | www.qubook.| 成年黄网站在线观看免费 | 性xxxxx| 国产精品久久久久久久久久久搜索 | 成人免费看黄网站无遮挡 | 2021国产精品自拍 | 黄网免费看| 91精品国产777在线观看 | 午夜精品一区二区三区在线视 | 欧美美女动态图 | 久久精品欧美一区二区三区不卡 | 天天综合色网 | 狠狠影视 | 亚洲精品一区久久狠狠欧美 | a三级毛片| 一级片视频免费观看 | 成人精品鲁一区一区二区 | 91蜜芽尤物福利在线观看 | 亚洲人成一区二区三区 | 欧美午夜视频一区二区三区 | 激情五月色综合国产精品 | 日韩精品区| 国产综合精品久久亚洲 | 黄色一级在线视频 | 国产精品九九久久99视频 | 99综合网 | 91九色国产视频 | 色综合欧美 | 色播视频在线播放 | 五月天婷婷网亚洲综合在线 | av播放在线 | 欧美高清在线精品一区二区不卡 | 亚洲一区二区三区视频 | 五月婷婷久 | 在线高清免费观看视频 |