SWT中嵌入awt/swing控件:
![](http://image2.360doc.com/DownloadImg/2008/12/14/7635_2120288_1.GIF)
![](http://image2.360doc.com/DownloadImg/2008/12/14/7635_2120288_2.gif) public static void main(String[] args) ...{
final Display display = new Display();
final Shell shell = new Shell(display,SWT.EMBEDDED);
Frame frame = SWT_AWT.new_Frame(shell);
frame.setLayout(new BorderLayout());
frame.setBackground(Color.blue);
frame.add(new JLabel("I'm swing label."),BorderLayout.NORTH);
JButton btnClose=new JButton("close");
![](http://pubimage.360doc.com/wz/default.gif) btnClose.addActionListener(new ActionListener()...{
![](http://pubimage.360doc.com/wz/default.gif) public void actionPerformed(ActionEvent e) ...{
![](http://pubimage.360doc.com/wz/default.gif) display.syncExec(new Runnable()...{
![](http://pubimage.360doc.com/wz/default.gif) public void run()...{
shell.close();
}
});
}
});
frame.add(btnClose,BorderLayout.SOUTH);
Panel panel = new Panel();
panel.setBackground(Color.orange);
frame.add(panel,BorderLayout.CENTER);
![](http://pubimage.360doc.com/wz/default.gif)
shell.setSize(400, 300);
shell.open();
![](http://pubimage.360doc.com/wz/default.gif) while (!shell.isDisposed()) ...{
![](http://pubimage.360doc.com/wz/default.gif) while (!display.readAndDispatch()) ...{
display.sleep();
}
}
display.dispose();
}
Eclipse视图效果:
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif) public void createPartControl(Composite parent) ...{
Composite p=new Composite(parent,SWT.EMBEDDED);
Frame frame = SWT_AWT.new_Frame(p);
frame.setLayout(new BorderLayout());
frame.setBackground(Color.blue);
frame.add(new JLabel("I'm swing label."),BorderLayout.NORTH);
JButton btnClose=new JButton("close");
frame.add(btnClose,BorderLayout.SOUTH);
Panel panel = new Panel();
panel.setBackground(Color.orange);
frame.add(panel,BorderLayout.CENTER);
}
swing/awt中使用swt
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif) public static void main(String[] args) ...{
final JFrame frame = new JFrame();
Canvas canvas = new Canvas();
frame.getContentPane().add(canvas,BorderLayout.CENTER);
frame.setVisible(true);
![](http://pubimage.360doc.com/wz/default.gif)
Display display = new Display();
final Shell shell = SWT_AWT.new_Shell(display,canvas);
shell.setLayout(new FillLayout());
Button button = new Button(shell,SWT.PUSH);
button.setText("SWT Button");
![](http://pubimage.360doc.com/wz/default.gif) button.addSelectionListener(new SelectionListener()...{
![](http://pubimage.360doc.com/wz/default.gif) public void widgetDefaultSelected(SelectionEvent e) ...{
}
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif) public void widgetSelected(SelectionEvent e) ...{
![](http://pubimage.360doc.com/wz/default.gif) SwingUtilities.invokeLater(new Runnable()...{
![](http://pubimage.360doc.com/wz/default.gif) public void run()...{
frame.dispose();
}
});
}
});
frame.setSize(400,300);
![](http://pubimage.360doc.com/wz/default.gif) while (!shell.isDisposed()) ...{
![](http://pubimage.360doc.com/wz/default.gif) if (!display.readAndDispatch())...{
display.sleep ();
}
}
display.dispose();
}
SWT的透明效果(对控件无效)
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif) public static void main(String[] args) ...{
final Display display = new Display();
final Shell shell = new Shell(display,SWT.NO_BACKGROUND);
![](http://pubimage.360doc.com/wz/default.gif) shell.addPaintListener(new PaintListener() ...{
![](http://pubimage.360doc.com/wz/default.gif) public void paintControl(PaintEvent e) ...{
GC gc = e.gc;
ImageData imageData = new ImageData("qd2.jpg");
imageData.alpha=90;
Image image = new Image(display, imageData);
gc.drawImage(image,0,0);
}
});
shell.setSize(400,300);
shell.open();
![](http://pubimage.360doc.com/wz/default.gif) while (!shell.isDisposed()) ...{
![](http://pubimage.360doc.com/wz/default.gif) if (!display.readAndDispatch())...{
display.sleep ();
}
}
display.dispose();
}
|