Swing 元件速用表


JComponent(通用元件)

JComponent 是 Swing 圖型元件共同繼承的元件,使每個元件有共通的操作方式,因此放在前面最先參考。

voidadd(Component)
加入元件。
floatgetAlignmentX()
取得水平方向的對齊方式,0.0 為左,0.5 為中,1.0 為右。
floatgetAlignmentY()
取得垂直方向的對齊方式,0.0 為上,0.5 為中,1.0 為下。
Component getComponentAt(int x, int y)
檢查座標位置使否有元件,有的話傳回該元件。
Component getComponentAt(Point)
檢查座標位置使否有元件,有的話傳回該元件。
Graphics getComponentGraphics(Graphics)
將元件的外貌以圖形傳回。
LocalegetDefaultLocale()
取得時區語系。
Graphics getGraphics()
取得繪圖區間。
intgetHeight()
取得高度。
PointgetLocation(Point)
取得左上角座標位置。
StringgetName()
取得名稱。
JRootPanegetRootPane()
傳回 JRootPane。
DimensiongetSize()
取得目前尺寸。
RectanglegetVisibleRect()
取得可見的矩形範圍。
intgetWidth()
取得寬度。
intgetX()
取得水平座標位置。
intgetY()
取得垂直座標位置。
voidinvalidate()
使元件無效。
booleanisDisplayable()
元件是否為可見的;有些元件看不到,例如計時器。
booleanisEnabled()
元件是否已經啟用。
booleanisShowing()
元件是否已經顯示。
booleanisValid()
元件是否有效。
voidpaint(Graphics)
繪圖區間繪製。
voidremove(Component)
移除所指定元件。
voidremoveAll()
移除所有加入的元件。
voidremoveNotify()
銷毀元件。
voidrepaint()
重新繪製。
voidrequestFocus()
請求獲得駐點。
voidrevalidate()
使元件重新生效;相當於先 invalidate() 再 validate()。
voidsetAlignmentX(float)
設定水平方向的對齊方式,0.0 為左,0.5 為中,1.0 為右。
voidsetAlignmentY(float)
設定垂直方向的對齊方式,0.0 為上,0.5 為中,1.0 為下。
voidsetBackground(Color)
設定背景顏色。
voidsetBounds(int x, int y, int w, int h)
設定尺寸與位置。
voidsetBorder(Border)
設定邊框樣式
voidsetCursor(Cursor)
設定滑鼠游標。
voidsetDefaultLocale(Locale)
設定時區語系。
voidsetDoubleBuffered(boolean)
設定雙重緩衝繪圖機制。
voidsetEnabled(boolean)
設定物件是否啟用。
voidsetFont(Font)
設定字型。
voidsetForeground(Color)
設定前景顏色。
voidsetLayout(LayoutManager)
設定元件排列模式。
voidsetName(String)
為元件命名。
voidsetOpaque(boolean)
設定是否繪製邊界內的像素;設為 false 的話有透明效果。
voidsetSize(int w, int h)
設定長寬尺寸。
voidsetToolTipText(String)
設定提示文字。
voidsetUI(ComponentUI)
設定物件外觀。
voidsetVisible(boolean)
設定物件是顯示或隱藏。
voidupdateUI()
更新物件的外觀。
voidupdate(Graphics)
更新物件的顯示狀態。
voidvalidate()
使元件生效。

JButton(按鈕)

voidsetDisabledIcon(Icon)
設定無作用時的圖案。
voidsetHorizontalAlignment(int)
設定標籤位置的水平對齊方式:
SwingConstants.BOTTOM(往下對齊)
SwingConstants.CENTER(置中對齊)
SwingConstants.TOP(往上對齊)
voidsetHorizontalTextPosition(int)
設定文字相對於圖案的水平位置關係。
voidsetIcon(Icon)
設定圖案。
voidsetIconTextGap(int)
設定文字與圖案的間距。
voidsetMargin(Insets)
設定間距。
voidsetPressedIcon(Icon)
設定按下時的圖案。
voidsetRolloverIcon(Icon)
設定滑鼠經過時的圖案。
voidsetText(String)
設定文字內容;支援部分 HTML 語法。
voidsetVerticalAlignment(int)
設定標籤位置的垂直對齊方式:
SwingConstants.CENTER(置中對齊)
SwingConstants.LEFT(向左對齊)
SwingConstants.RIGHT(向右對齊)
voidsetVerticalTextPosition(int)
設定文字相對於圖案的垂直位置關係。

JCheckBox(核取方塊)

booleanisSelected()
是否被選取。
voidsetDisabledIcon(Icon)
設定無作用時的圖案。
voidsetHorizontalAlignment(int)
設定標籤位置的水平對齊方式:
SwingConstants.CENTER(置中對齊)
SwingConstants.LEFT(向左對齊)
SwingConstants.RIGHT(向右對齊)
voidsetHorizontalTextPosition(int)
設定文字相對於圖案的水平位置關係。
voidsetIcon(Icon)
設定圖案。
voidsetIconTextGap(int)
設定文字與圖案的間距。
voidsetMargin(Insets)
設定間距。
voidsetPressedIcon(Icon)
設定按下時的圖案。
voidsetRolloverIcon(Icon)
設定滑鼠經過時的圖案。
voidsetSelected(boolean)
設定是否被選取。
voidsetSelectedIcon(Icon)
設定被選取時的圖案。
voidsetText(String)
設定文字內容;支援部分 HTML 語法。
voidsetVerticalAlignment(int)
設定標籤位置的垂直對齊方式:
SwingConstants.BOTTOM(往下對齊)
SwingConstants.CENTER(置中對齊)
SwingConstants.TOP(往上對齊)
voidsetVerticalTextPosition(int)
設定文字相對於圖案的垂直位置關係。

通常核取方塊的應用場合,是允許在整群項目中複選多個出來。


JColorChooser(色彩選擇器)

ColorshowDialog(Component, String, Color)
顯示選擇器。

JComboBox<E>(下拉式清單)

voidaddItem(E)
新增項目。
EgetItemAt(int)
依索引值取得項目。
intgetItemCount
取得項目總數
intgetSelectedIndex()
取得被選取項目的索引值。
EgetSelectedItem()
取得被選取的項目。
voidinsertItemAt(E, int)
插入項目。
voidremoveAllItems()
清除所有項目。
voidremoveItem(E)
移除項目。
voidremoviItemAt(int)
依索引值移除項目。
voidsetEditable(boolean)
設定是否能編輯清單中的項目。

JDesktopPane(桌面)

voidadd(Component)
加入 JInternalFrame。
JInternalFrame[]getAllFrames()
取得所有視窗。
JInternalFramegetSelectedFrame()
取得正被使用的視窗。
voidremove(int)
移除第幾個視窗。
voidsetComponentZOrder(Component, int)
設定視窗的重疊位置。
voidsetSelectedFrame(JInternalFrame)
設定哪個視窗獲得駐點。

JEditorPane(圖文編輯器)

voidcopy()
複製文字內容到剪貼簿。
voidcut()
剪下文字內容到剪貼簿。
DocumentgetDocument()
取得文件內容模型,藉以編輯文字。
intgetSelectionEnd(int)
取得選取文字的結束位置。
intgetSelectionStart(int)
取得選取文字的起點位置。
StringgetSelectedText()
取得選取中的文字內容。
StringgetText()
取得文字內容。
booleanisEditable()
是否可編輯。
voidpaste()
從剪貼簿貼上文字內容。
voidreplaceSelection(String)
取代所選取文字的內容。
voidselect(int start, int end)
選取指定範圍內的文字內容。
voidselectAll()
選取全部文字內容。
voidsetEditable(boolean)
設定是否可輸入文字。
voidsetHorizontalAlignment(int)
設定文字對齊方式。
voidsetText(String)
設定文字內容。

JFileChooser(檔案選擇器)

FilegetSelectedFile()
取得檔案。
File[]getSelectedFiles()
取得多個檔案。
voidsetCurrentDirectory(File)
設定預設的資料夾位置。
voidsetSelectedFile(File)
設定預設的檔案。
voidsetMultiSelectionEnabled(boolean)
設定是否選取多個檔案。
intshowOpenDialog(Component)
顯示開啟檔案視窗。
intshowSaveDialog(Component)
顯示儲存檔案視窗。

JFormattedTextField(格式化輸入欄;驗證型輸入欄)

建構式JFormattedTextField(Format)
可用 java.text.DateFormat(日期)或 java.text.NumberFormat(數字)的 getInstance() 來建立格式。
ObjectgetValue()
取得輸入內容。
booleanisEditValid()
檢查所輸入資料是否符合驗證。
voidsetFocusLostBehavior(int)
設置為 JFormattedTextField.COMMIT 的話,不會清除驗證錯誤的資料。
voidsetValue(Object)
設定輸入內容。

如果輸入的資料不符合格式,會自動清除或還原。而且會根據所指定的格式,改變資料的顯示方式,例如數字每三位數用 , 符號標示。


JFrame(視窗)

ComponentgetGlassPane()
取得容器的表層。
ContainergetContentPane()
取得容器。
JLayeredPanegetLayeredPane()
取得疊層容器。
voidsetIconImage(Image)
設定視窗標題列小圖示。
voidsetJMenuBar(JMenuBar)
設定功能表。
voidsetResizable(boolean)
是否可調整尺寸

JInternalFrame(子視窗)

voidsetFrameIcon(Icon)
設定視窗標題列小圖示。
booleanisClosed()
視窗是否已關閉。
voidmoveToBack()
移到後面。
voidmoveToFront()
移到前面。
voidreshape(int x, int y, int w, int h)
重新調整視窗位置與大小。
voidsetClosable(boolean)
是否提供關閉鈕。
voidsetIconifiable(boolean)
是否提供最小化鈕。
voidsetJMenuBar(JMenuBar)
設定功能表。
voidsetMaximizable(boolean)
是否提供最大化鈕。
voidsetResizable(boolean)
是否可調整尺寸

JLabel(標籤)

IcongetIcon()
取得圖案。
StringgetText()
取得文字內容。
voidsetDisplayedMnemonic(char)
設定哪個字做為 Alt+Key 快捷鍵記號。
voidsetHorizontalAlignment(int)
設定標籤位置的水平對齊方式。
voidsetHorizontalTextPosition(int)
設定文字相對於圖案的水平位置關係。
voidsetIcon(Icon)
設定圖案。
voidsetIconTextGap(int)
設定文字與圖案的間距。
voidsetLabelFor(Component)
設定哪個元件做為快捷鍵對象。
voidsetText(String)
設定文字內容;支援部分 HTML 語法。
voidsetVerticalAlignment(int)
設定標籤位置的垂直對齊方式。
voidsetVerticalTextPosition(int)
設定文字相對於圖案的垂直位置關係。

JLabel 並不只是文字標籤而已,也可以當作圖案貼紙。此外還具備使用 HTML 語法來展現文字的能力,以及輔助其它元件關聯到快捷鍵的功能。


JLayeredPane(疊層)

voidadd(Component, int)
將 Component 加入為第 int 層元件。

JList<E>(清單)

intgetSelectedIndex()
取得目前所選擇項目的索引值。
int[]getSelectedIndices()
取得所有選擇項目的索引值。
ObjectgetSelectedValue()
取得目前所選擇的項目。
Object[]getSelectedValues()
取得所有選擇的項目。
voidsetSelectionBackground(Color)
設定選擇項目時的背景顏色。
voidsetSelectionForeground(Color)
設定選擇項目時的文字顏色。
voidsetSelectionInterval(int start, int end)
設定連續選擇的項目。
voidsetSelectionMode(int)
設定選擇模式,可用 javax.swing.ListSelectionModel 的常數來指定:
SINGLE_SELECTION(單選)
SINGLE_INTERVAL_SELECTION(連續選擇)
MULTIPLE_INTERVAL_SELECTION(跳躍選擇)
voidsetSelectedIndex(int)
設定選擇第幾個項目。
voidsetSelectedIndices(int[])
設定選擇哪幾個項目。
voidsetSelectedValue(Object, boolean)
選擇指定的項目。
voidsetVisibleRowCount(int)
設定清單每次可檢視的欄位數。
voidsetLayoutOrientation(int)
設定清單項目的排列方式,可用 JLsit 本身的常數來指定:
HORIZONTAL_WRAP(跨頁式水平排列)
VERTICAL(垂直排列)
VERTICAL_WRAP(跨頁式垂直排列)
voidsetListDate(Object[])
選擇多個項目。

通常搭配 JScrollPane 來捲動。


JMenu(選單)

JMenuItemadd(Action)
用動作加入選單項目。
voidadd(JMenuItem)
加入選單項目。
JMenuItemadd(String)
用文字加入選單項目。
voidaddSeparator()
加入分隔線。

JMenuBar(功能表)

voidadd(JMenu)
加入選單。
voidsetMargin(Insets)
設定間距。

JMenuItem(選單項目)

建構式JMenuItem(Icon)
用圖示建立選單項目。
建構式JMenuItem(String)
用文字建立選單項目。
建構式JMenuItem(String, Icon)
用文字與圖示建立選單項目。
voidsetAccelerator(KeyStroke)
設置快捷鍵。
voidsetAction(Action)
連結事件。

JOptionPane(選項視窗)

intshowConfirmDialog(Component, Object, String, int)
顯示確認對話視窗。
StringshowInputDialog(Component, Object, String, int)
顯示輸入對話視窗。
voidshowMessageDialog(Component, Object, String, int)
顯示訊息對話視窗。

JPanel(元件容器;子面板)

看似沒有自己獨特的操作方式,用 setLayout() 決定元件排版模式,然後用 add() 加入元件,再用 setBounds() 設定好尺寸位置,最後加入到 JFrame 裡面,感覺很普通。

但管理一群 Swing 的圖形元件時,就像子面板一樣非常好用。例如整群按鈕先用 JPanel 放在一塊,再加入到視窗,不僅日後更方便管理這些按鈕的排列,也能一次決定這整塊元件的去向。

或者你想設計一個日曆或時鐘,就先把所有用到的元件都設計在 JPanel 裡面,日後再整塊 JPanel 拿來用,就是你專屬的 JCalendar 或 JClock 了。


JPasswordField(密碼輸入欄)

StringgetPassword()
取得所輸入的密碼。
voidsetEchoChar(char)
設定遮蔽符號。

JPopupMenu(滑鼠右鍵選單)

JMenuItemadd(Action)
依動作加入項目。
JMenuItemadd(JMenuItem)
加入 JMenuItem。
JMenuItemadd(String)
加入文字。
voidaddSeparator()
加入分隔線。
voidshow(Component, int x, int y)
顯示選單。

JProgressBar(進度列)

intgetValue()
取得當前的值。
voidsetMaximum(int)
設定最大值。
voidsetMinimum(int)
設定最小值。
voidsetOrientation(int)
設定為水平顯示或垂直顯示:
SwingConstants.HORIZONTAL(水平)
SwingConstants.VERTICAL(垂直)
voidsetValue(int)
設定當前的值

JRadioButton(圈選按鈕)

booleanisSelected()
是否被選取。
voidsetDisabledIcon(Icon)
設定無作用時的圖案。
voidsetHorizontalAlignment(int)
設定標籤位置的水平對齊方式:
SwingConstants.CENTER(置中對齊)
SwingConstants.LEFT(向左對齊)
SwingConstants.RIGHT(向右對齊)
voidsetHorizontalTextPosition(int)
設定文字相對於圖案的水平位置關係。
voidsetIcon(Icon)
設定圖案。
voidsetIconTextGap(int)
設定文字與圖案的間距。
voidsetMargin(Insets)
設定間距。
voidsetPressedIcon(Icon)
設定按下時的圖案。
voidsetRolloverIcon(Icon)
設定滑鼠經過時的圖案。
voidsetSelected(boolean)
設定是否被選取。
voidsetSelectedIcon(Icon)
設定被選取時的圖案。
voidsetText(String)
設定文字內容;支援部分 HTML 語法。
voidsetVerticalAlignment(int)
設定標籤位置的垂直對齊方式:
SwingConstants.BOTTOM(往下對齊)
SwingConstants.CENTER(置中對齊)
SwingConstants.TOP(往上對齊)
voidsetVerticalTextPosition(int)
設定文字相對於圖案的垂直位置關係。

通常圈選按鈕的應用場合,是在整群項目中,只能單選一個出來。


JRootPane(表面容器)

voidsetDefaultButton(JButton)
設定預設按鈕,按 Enter 時直接觸發。

JScrollPane(捲動軸)

voidsetVerticalScrollBarPolicy(int)
設定垂直捲動軸出現的時機:
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS(顯示)
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED(自動)
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER(隱藏)
voidsetHorizontalScrollBarPolicy(int)
設定水平捲動軸出現的時機:
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS(顯示)
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED(自動)
JScrollPane.VERTICAL_SCROLLBAR_NEVER(隱藏)
voidsetViewportView(Component)
設置元件。

JSeparator(線段)

voidsetOrientation(int)
設定為水平線段或垂直線段:
SwingConstants.HORIZONTAL(水平)
SwingConstants.VERTICAL(垂直)

JSlider(滑動桿;刻度列)

intgetValue()
取得當前的值。
voidsetMaximum(int)
設定最大值。
voidsetMinimum(int)
設定最小值。
voidsetOrientation(int)
設定為水平顯示或垂直顯示:
SwingConstants.HORIZONTAL(水平)
SwingConstants.VERTICAL(垂直)
voidsetValue(int)
設定當前的值

JSpinner(微調器)

(略)


JSplitPane(分割板)

建構式JSplitPane(int)
建立分割板同時指定排列方式:
JSplitPane.HORIZONTAL_SPLIT(水平)
JSplitPane.VERTICAL_SPLIT(垂直)
雖然有 setOrientation() 可以事後指定,但建構式比較不會出錯。
voidresetToPreferredSizes()
重新排列面板尺寸。
voidsetDividerLocation(double)
設定分隔軸的原點位置。
voidsetDividerSize(int)
設定分隔軸的寬度。
voidsetOneTouchExpandable(boolean)
是否可以展開與收起。

JTabbedPane(分頁)

voidadd(String, Component)
新增頁籤,並加入元件。
intgetTabCount()
取得分頁數量。
voidremove(int)
移除第幾個頁籤。
voidsetSelectedIndex(int)
跳到第幾個頁籤。
voidsetTabPlacement(int)
設定頁籤標題的位置:
SwingConstants.BOTTOM(下)
SwingConstants.LEFT(左)
SwingConstants.RIGHT(右)
SwingConstants.TOP(上)
voidsetTitleAt(int, String)
修改頁籤名稱。

JTable(表格)

操作複雜,請參考《JTable》的範例。


JTextArea(純文字編輯器;多行)

voidcopy()
複製文字內容到剪貼簿。
voidcut()
剪下文字內容到剪貼簿。
intgetSelectionEnd(int)
取得選取文字的結束位置。
intgetSelectionStart(int)
取得選取文字的起點位置。
StringgetSelectedText()
取得選取中的文字內容。
StringgetText()
取得文字內容。
booleanisEditable()
是否可編輯。
voidpaste()
從剪貼簿貼上文字內容。
voidreplaceSelection(String)
取代所選取文字的內容。
voidselect(int start, int end)
選取指定範圍內的文字內容。
voidselectAll()
選取全部文字內容。
voidsetEditable(boolean)
設定是否可輸入文字。
voidsetHorizontalAlignment(int)
設定文字對齊方式。
voidsetText(String)
設定文字內容。

JTextField(文字輸入欄;單行)

StringgetText()
取得文字內容。
voidsetColumns(int)
設定欄位寬度,即可輸入的字元數。
voidsetText(String)
設定文字內容。

JTextPane(圖文容器)

voidcopy()
複製文字內容到剪貼簿。
voidcut()
剪下文字內容到剪貼簿。
DocumentgetDocument()
取得文件內容模型,藉以編輯文字。
intgetSelectionEnd(int)
取得選取文字的結束位置。
intgetSelectionStart(int)
取得選取文字的起點位置。
StringgetSelectedText()
取得選取中的文字內容。
StringgetText()
取得文字內容。
booleanisEditable()
是否可編輯。
voidpaste()
從剪貼簿貼上文字內容。
voidreplaceSelection(String)
取代所選取文字的內容。
voidselect(int start, int end)
選取指定範圍內的文字內容。
voidselectAll()
選取全部文字內容。
voidsetEditable(boolean)
設定是否可輸入文字。
voidsetHorizontalAlignment(int)
設定文字對齊方式。
voidsetText(String)
設定文字內容。

JToggleButton(開關式按鈕)

booleanisSelected()
是否被選取。
voidsetDisabledIcon(Icon)
設定無作用時的圖案。
voidsetHorizontalAlignment(int)
設定標籤位置的水平對齊方式:
SwingConstants.CENTER(置中對齊)
SwingConstants.LEFT(向左對齊)
SwingConstants.RIGHT(向右對齊)
voidsetHorizontalTextPosition(int)
設定文字相對於圖案的水平位置關係。
voidsetIcon(Icon)
設定圖案。
voidsetIconTextGap(int)
設定文字與圖案的間距。
voidsetMargin(Insets)
設定間距。
voidsetPressedIcon(Icon)
設定按下時的圖案。
voidsetRolloverIcon(Icon)
設定滑鼠經過時的圖案。
voidsetSelected(boolean)
設定是否被選取。
voidsetSelectedIcon(Icon)
設定被選取時的圖案。
voidsetText(String)
設定文字內容;支援部分 HTML 語法。
voidsetVerticalAlignment(int)
設定標籤位置的垂直對齊方式:
SwingConstants.BOTTOM(往下對齊)
SwingConstants.CENTER(置中對齊)
SwingConstants.TOP(往上對齊)
voidsetVerticalTextPosition(int)
設定文字相對於圖案的垂直位置關係。

JToolBar(工具列)

JButtonadd(Action)
依事件加入按鈕。
voidaddSeparator()
加入分隔線。
voidaddSeparator(Dimension)
加入分隔線到指定位置。
voidsetOrientation(int)
設定排列方向:
SwingConstants.HORIZONTAL(水平)
SwingConstants.VERTICAL(垂直)
voidsetRollover(boolean)
是否啟用按鈕浮現效果。
voidsetFloatable(boolean)
是否啟用工具列浮動效果。

JTree(樹狀表)

(略)


Border(外框)

(略)


ImageIcon(圖案)

建構式ImageIcon(String)
依 String 所指的路徑與檔案來載入圖片。

Timer(計時器)

建構式Timer(int, ActionListener)
int 毫秒時間後,執行 ActionListener 事件。

ButtonGroup

voidadd(ButtonModel)
加入按鈕。
voidclearSelection()
清除所有被選取的按鈕。
intgetButtonCount()
取得被選取的按鈕數目。
Enumeration
<AbstractButton>
getElements()
傳回被選取的按鈕。
ButtonModelgetSelection()
取得被選取的按鈕。
voidsetSelected(ButtonModel, boolean)
設定按鈕是否選取。
booleanisSelected(ButtonModel)
判斷按鈕是否被選取。
voidremove(ButtonModel)
移除按鈕。