面板(Panel)
面板也是一個容器的組件,可以在上面添加
注意:面板不能單獨使用,必須在頂層窗口中使用。
常見組件
一些常用的組件例如:
JLabel,
JButton ,
JTextField
JPassworldField
JRadioButton
JCheckBox
JTextArea
JList
JMenuBar
JMenu
JMenultem
Button按鈕
Java中的Swing提供了常規按鈕,單選按鈕,復選按鈕和菜單按鈕
JButtion普通按鈕
按鈕Button是點擊時觸發動作事件的組件.
JRadioButton單選按鈕
單選按鈕,可以讓用戶從一組選項中選擇一個單一條目.例如性別.
使用單選按鈕時注意將,單選按鈕放在一組,需要使用java.swing.ButtonGroup. 的add方法,添加到一個組中,位於同一個組的單選按鈕就是互斥的. 如果沒有將單選按鈕放在一個組中,就是獨立的..我們讓然需要把按鈕添加在容器中.因為ButtonGroup添加到容器中..
JCheckBox復選框
多選
JLabel標簽
JTextField文本域
JTextArea文本區域
JComboBox組合框
JList 列表框
例如: String[] data = { "one", "two", "three" };
JList list = new JList(data);
p1.add(list);
JmenuBar菜單條
JMenu菜單
JMenultem菜單項
菜單條(MenuBar)中包含菜單(Menu),菜單中中包含菜單項(MenuItem)
注意添加的順序。例如:記事本的菜單條中包含文件、編輯、格式、查看、幫助菜單。其中文件菜單中包含新建、打開、保存、另存為等菜單項
案例綜合。
public class CommonComponent extends JFrame { public CommonComponent() { // 面板 JPanel p1 = new JPanel(); add(p1); // 標簽 JLabel name = new JLabel("用戶名:"); p1.add(name); // 文本域 JTextField field = new JTextField(8); p1.add(field); // 標簽 JLabel passwd = new JLabel("密碼"); p1.add(passwd); // 密碼域 JPasswordField pass = new JPasswordField(8); p1.add(pass); // 單選按鈕 JLabel gender = new JLabel("性別"); p1.add(gender); JRadioButton male = new JRadioButton("男"); JRadioButton female = new JRadioButton("女"); // 單選按鈕組,同一個單選按鈕組的互斥. ButtonGroup group = new ButtonGroup(); group.add(male); group.add(female); // 注意,單選按鈕組不能添加進容器 p1.add(male); p1.add(female); // 復選框 JLabel like = new JLabel("愛好:"); p1.add(like); JCheckBox eat = new JCheckBox("吃飯"); JCheckBox movie = new JCheckBox("看電影"); JCheckBox sleep = new JCheckBox("睡覺"); p1.add(eat); p1.add(movie); p1.add(sleep); // 文本域 JLabel info = new JLabel("個人簡介"); p1.add(info); JTextArea area = new JTextArea(20, 20); p1.add(area); // 列表 String[] data = { "one", "two", "three" }; JList list = new JList(data); p1.add(list); // 普通按鈕 JButton button = new JButton("注冊"); p1.add(button); // 菜單條 JMenuBar bar = new JMenuBar(); // 菜單 JMenu menu = new JMenu("文件"); // 菜單選項 JMenuItem myNew = new JMenuItem("新建"); JMenuItem myOpen = new JMenuItem("打開"); bar.add(menu); menu.add(myNew); menu.add(myOpen); add(bar, BorderLayout.NORTH); } public static void main(String[] args) { CommonComponent frame = new CommonComponent(); frame.setTitle("常用組件"); frame.setSize(400, 400); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 自適應 frame.pack(); frame.setVisible(true); } }
樣式如下:
因為面板默認是流式布局