功能/角色/外表 | AWT | Swing | SWT(風格) |
---|
顯示靜態(tài)文本 | Label | JLabel | Label, CLabel |
顯示多行靜態(tài)文本 | Multiple Labels | 具有 HTML 內容的 Multiple JLabels 或 JLabel | 具有新行的 Multiple Labels 或 Label |
顯示多行格式化靜態(tài)文本 | 具有不同字體的 Multiple Labels | 具有 HTML 內容的 JLabel | 具有不同字體的 Multiple Labels |
單行文本輸入 | TextField | JTextField | Text(SWT.SINGLE) |
多行文本輸入 | TextArea | JTextArea | Text(SWT.MULTI) |
顯示圖像 | N/A | JLabel | Label |
顯示文本和圖像 | N/A | JLabel | CLabel |
提示彈出幫助 | N/A | 組件的 setToolTip,JToolTip 子類 | 控件的 setToolTip |
風格化的文本輸入 | N/A | JEditorPane | StyledText |
從條目列表中進行選擇 | List | JList | List |
簡單按下具有文本的按鈕 | Button | JButton | Button(SWT.PUSH) |
簡單按下具有文本或圖像的按鈕 | N/A | JButton | Button(SWT.PUSH) |
繪圖區(qū)域;可能用于定制控件 | Canvas | JPanel | Canvas |
選中/取消復選框 | CheckBox | JCheckBox | Button(SWT.CHECK) |
單選按鈕選擇 | CheckBoxGroup | ButtonGroup 和 Menu | Group 和 Menu |
從一個下拉列表中選擇 | Choice | JComboBox | Combo、CCombo |
輸入文本或從下拉列表中選擇 | N/A | JComboBox | Combo、CCombo |
可滾動區(qū)域 | ScrollPane | JScrollPane | 創(chuàng)建 Scrollable 子類 |
頂層窗口 | Dialog、Frame、Window | JDialog、JFrame、JWindow | 具有不同風格的 Shell |
通用窗口 | Window | JWindow | Shell |
框架窗口 | Frame | JFrame | Shell(SWT.SHELL_TRIM) |
對話框窗口 | Dialog | JDialog | Shell(SWT.DIALOG_TRIM) |
菜單 | Menu | JMenu | Menu |
MenuItem | MenuItem | JMenuItem | MenuItem |
菜單快捷鍵 | 通用擊鍵 | 與 AWT 相同 | 依賴于主機的快捷鍵 |
彈出菜單 | PopupMenu | JPopupMenu | Menu(SWT.POPUP) |
菜單條 | MenuBar | JMenuBar | Menu(SWT.BAR) |
顯示插入符號 | N/A | Caret | Caret |
Web 瀏覽器 | N/A | JTextPane(HTML 3.2) | Browser(通過嵌入式瀏覽器) |
Web 頁面中的嵌入式控件 | Applet | JApplet | 主機控件(例如 OLE) |
其他控件的通用容器 | Panel | JPanel | Composite |
其他控件的有邊界通用容器 | Panel(如果是手工畫的) | 具有 Border 的 JPanel | Composite(SWT.BORDER) |
其他控件的有邊界和標題的通用容器 | N/A | 具有 TitledBorder 的 JPanel | Group |
單選按鈕(一個被選中) | Checkbox | JRadioButton | Button(SWT.RADIO) |
單選按鈕的控件擴充 | CheckboxGroup | RadioButtonGroup | Group |
箭頭按鈕 | N/A | 具有圖像的 JButton | Button(SWT.ARROW) |
支持文本顯示方向 | 通過 ComponentOrientation | 與 AWT 相同 | 很多組件都可以支持這種風格 |
焦點切換 | Policy 和 Manager 對象 | 與 AWT 相同 | 下一個控件 |
定制對話框 | Dialog 子類 | JDialog 子類 | Dialog 子類 |
訪問系統(tǒng)事件 | EventQueue 服務 | 與 AWT 相同 | Display 服務(不如 AWT 健壯) |
系統(tǒng)訪問對話框 | FileDialog | JColorChooser、JFileChooser | ColorDialog、DirectoryDialog、FileDialog、FontDialog、PrintDialog |
顯示簡單消息對話框 | N/A(必須是 Dialog 子類) | JOptionPane 靜態(tài)方法 | 具有很多風格的 MessageBox |
顯示簡單提示對話框 | N/A(必須是 Dialog 子類) | JOptionPane 靜態(tài)方法 | N/A(JFace 中用來實現(xiàn)這種功能的子類) |
布局管理器 | BorderLayout、CardLayout、FlowLayout、GridLayout、GridBagLayout | AWT 加上 BoxLayout、CenterLayout、SpringLayout | FillLayout、FormLayout、GridLayout、RowLayout、StackLayout |
基本的繪圖控件 | Canvas | JPanel | Canvas |
基本繪圖 | Graphics 和 Graphics2D 對象 —— 基本形狀和文本,任意 Shapes 和 Strokes、Bezier 以及文件 | 與 AWT 相同 | GC 對象 —— 基本形狀和文本 |
繪圖轉換 | Affine,合成 | 與 AWT 相同 | N/A |
離屏繪圖(Off screen drawing) | BufferedImage、drawImage | 與 AWT 相同 | Image、drawImage |
雙緩沖區(qū) | 手工 | 自動或手工 | 除非由主機控件提供,否則就是手工 |
打印 | PrintJob 和 PrintGraphics | 與 AWT 相同 | 向 Printer 設備繪圖 |
定制顏色 | Color | 與 AWT 相同 | Color |
定制字體 | Font、FontMetrics | 與 AWT 相同 | Font |
光標選擇 | Cursor | 與 AWT 相同 | Cursor |
圖像特性 | 從文件中加載,動態(tài)創(chuàng)建,可擴充地編輯 | 與 AWT 相同 | 從文件中加載,動態(tài)創(chuàng)建,基本編輯 |
輸入自動化 | Robot | 與 AWT 相同 | N/A |
顯示工具條 | N/A | JToolBar | ToolBar、CoolBar |
顯示進度條 | N/A | JProgressBar | ProgressBar |
將空間劃分成區(qū)域 | N/A | JSplitPane | Sash 或 SashForm |
顯示一個分標簽頁的區(qū)域 | N/A | JTabbedPane | TabFolder、CTabFolder |
顯示制表信息 | N/A | JTable | Table |
格式化表的列 | N/A | TableColumn | TableColumn |
顯示層次化信息 | N/A | JTree | Tree |
從一定范圍的值中進行選擇 | N/A | JSlider | Slider |
從一組離散范圍的值中進行選擇 | N/A | JSpinner | Scale |
對于基本顯示的訪問 | Toolkit、GraphicsConfiguration、GraphicsDevice | 與 AWT 相同 | Display |
將條目添加到系統(tǒng)托盤(system tray)中 | N/A | N/A | Tray |
關鍵:N/A —— 不適用。在很多情況中,這種特性都可以通過創(chuàng)建定制控件或控件容器或利用其他定制編程來實現(xiàn),不過實現(xiàn)的難度會有所不同。 |