IBM实验室对SWT, Swing 和 AWT 的特征比较

来源:互联网 发布:中行logo数据 编辑:程序博客网 时间:2024/04/30 03:12
Table 1. SWT vs. AWT and Swing Feature comparison
Function/Role/Aspect AWT Swing SWT (style) Display static text Label JLabel Label, CLabel Display multi-line static text Multiple Labels Multiple JLabels or JLabel with HTML content Multiple Labels or Label with newlines Display multi-line formatted static text Multiple Labels with different fonts JLabel with HTML content Multiple Labels with different fonts Single-line text entry TextField JTextField Text(SWT.SINGLE) Multi-line text entry TextArea JTextArea Text(SWT.MULTI) Display an image N/A JLabel Label Display text and image N/A JLabel CLabel ToolTip pop-up help N/A setToolTip on component, subclass JToolTip setToolTip on control Styled text entry N/A JEditorPane StyledText Select from list of items List JList List Simple push button with text Button JButton Button(SWT.PUSH) Simple push button with text and/or image N/A JButton Button(SWT.PUSH) Drawing area; possibly for custom controls Canvas JPanel Canvas On/off check box CheckBox JCheckBox Button(SWT.CHECK) Radio selection CheckBoxGroup ButtonGroup and menus Group and Menu Select from a drop-down list Choice JComboBox Combo, CCombo Enter text or select from a drop-down list N/A JComboBox Combo, CCombo Scrollable area ScrollPane JScrollPane Create Scrollable subclass Top level windows Dialog, Frame, Window JDialog, JFrame, JWindow Shell with different styles Generic window Window JWindow Shell Frame window Frame JFrame Shell(SWT.SHELL_TRIM) Dialog window Dialog JDialog Shell(SWT.DIALOG_TRIM) Menu Menu JMenu Menu MenuItem MenuItem JMenuItem MenuItem Menu shortcuts Generic keystrokes same as AWT host dependent mnemonics and accelerators Pop-up menu PopupMenu JPopupMenu Menu(SWT.POPUP) Menu bars MenuBar JMenuBar Menu(SWT.BAR) Display an insertion caret N/A Caret Caret Web browser N/A JTextPane (HTML 3.2) Browser (via embedded browser) Embed control in web page Applet JApplet Host control (ex. OLE) Generic container of other controls Panel JPanel Composite Generic container of other controls with a border Panel (if drawn manually) JPanel with a Border Composite(SWT.BORDER) Generic container of other controls with a border and title N/A JPanel with a TitledBorder Group Radio button (one of set on) Checkbox JRadioButton Button(SWT.RADIO) Control extent of radio buttons CheckboxGroup RadioButtonGroup Group Arrow buttons N/A JButton with image Button(SWT.ARROW) Supports int'l text orientations via ComponentOrientation same as AWT Many components support styles for this Focus Traversal Policy and Manager objects same as AWT Next on control Custom dialogs Dialog subclass JDialog subclass Dialog subclass Access to system events EventQueue services same as AWT Display services (less robust than AWT) System access dialogs FileDialog JColorChooser, JFileChooser ColorDialog, DirectoryDialog, FileDialog, FontDialog, PrintDialog Display simple message dialog N/A (must subclass Dialog) JOptionPane static methods MessageBox with numerous styles Display simple prompting dialog N/A (must subclass Dialog) JOptionPane static methods N/A (classes exist in JFace to do this) Layout managers BorderLayout, CardLayout, FlowLayout, GridLayout, GridBagLayout AWT plus BoxLayout, CenterLayout, SpringLayout FillLayout, FormLayout, GridLayout, RowLayout, StackLayout Basic drawing control Canvas JPanel Canvas Basic drawing Graphics and Graphics2D objects - Basic shapes and text, arbitrary Shapes and Strokes, Bezier, fills, etc. same as AWT GC object - Basic shapes and text Drawing transforms Affine, composites same as AWT N/A Off screen drawing BufferedImage, drawImage same as AWT Image, drawImage Double buffering Manual Automatic or manual Manual unless provided by host control Printing PrintJob and PrintGraphics same as AWT draw to Printer device Custom colors Color same as AWT Color Custom fonts Font, FontMetrics same as AWT Font Cursors selection Cursor same as AWT Cursor Image features load from file, create dynamically, extensive edits same as AWT load from file, create dynamically, basic edits Input automation Robot same as AWT N/A Display a tool bar N/A JToolBar ToolBar, CoolBar Display a progress bar N/A JProgressBar ProgressBar Divide space between areas N/A JSplitPane Sash or SashForm Display tabbed areas N/A JTabbedPane TabFolder, CTabFolder Display tabular info N/A JTable Table Format table columns N/A TableColumn TableColumn Display hierarchical info N/A JTree Tree Select from range of values N/A JSlider Slider Select from discrete range of values N/A JSpinner Scale Access to the base display Toolkit, GraphicsConfiguration, GraphicsDevice same as AWT Display Add items to the system tray N/A N/A Tray Key: N/A - Not available. In many cases, this feature can be created, with varying degrees of difficulty, by creating custom controls or containers of controls or by other custom programming.

 

作者最后得出的结论是如果你只开发用于某一特性平台(当然,只能是主流平台),SWT就有优势了,它可以集成这些平台的特有的功能。例如在Windows下使用ActiveX控件。



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=610935


原创粉丝点击