亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

在SWT中使用ChartDirector

系統 2110 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元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产国语一级a毛片高清视频 | 国产视频久久 | 国产 麻豆 欧美亚洲综合久久 | 国产精品免费看久久久 | 伊人精品在线 | 麻豆国产96在线 | 中国 | 精品久久久久久18免费看 | 国产黄色自拍视频 | 欧美精品在线观看 | 色偷偷亚洲 | 亚洲天堂一区二区三区四区 | 欧美aa一级片 | 久久香蕉国产线看观看式 | 91在线看片| 免费观看欧美精品成人毛片能看的 | 美国一级毛片免费看成人 | 国产极品福利视频在线观看 | 久久国产精品久久 | 欧美色欧美亚洲高清在线视频 | 白云精品视频国产专区 | 精品理论片一区二区三区 | 国产v欧美v日韩在线观看 | 快播视频在线 | 亚洲国产成人久久一区www | 国内精品伊人久久久影视 | 国产在线精品网址你懂的 | 日本不卡1 | 亚洲精品亚洲人成在线播放 | 高清人人天天夜夜曰狠狠狠狠 | 国产理论最新国产精品视频 | 亚洲专区第一页 | 欧美一级性视频 | 久久综合在线 | 亚洲色五月 | 91精品国产高清91久久久久久 | 国内视频一区 | 成人区精品一区二区毛片不卡 | 四虎在线成人免费网站 | 久久99精品久久久久久牛牛影视 | 日本久久久久一级毛片 | 国产精品亚洲片在线观看麻豆 |