>GUI组件介绍
>>分类
控制组件:button,label
容器:能容纳和排列组件的组件。
>>界面的构成:(分析一个代码的结构层次)
一个顶层容器(主窗口)
顶层容器包含若干个中间容器
每个中间容器包含若干个基本组件
按照合理的布局方式,将他们组织在一起。
基本组件可相应发生在其上的事件
>>swing中的容器
顶层容器:
JFrame:用来创建application的顶层窗体
JApplet:用来创建applet程序
JDialog:用来创建对话框
JWindow:不常用
中间容器:
JPanel:提供一个面板
JScrollPane:具有滚动条的窗格
JSplitPane:具有拆分功能的窗格
JTablePane:具有若干标签的窗格
JInternalFrame:
Box:盒式布局的中间容器
基本组件:
JLabelJButton、JCheckBox、JRadioButtonJList、JComboBoxJTextField、JPasswordField、JTextAreaJToolBar、JToolTip、JProgressBarJSlider、JSpinnerJFileChooser、JColorChooserJMenuBar、JMenu、JMenuItem、JCheckBoxMenuItem、JRadioButtonMenuItem、JPopupMenuJTableJTreeJOptionPane、JSeparator
>swing组件的使用:
package useSwing;
import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionListener;
import javax.swing.*;
import javax.swing.border.Border;
public class Containing {
public static void main(String[] args){
//设置JFrame
JFrame f = new JFrame();
f.setTitle("My first JFrame");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(600, 600);
Container con = f.getContentPane();
JPanel pan = new JPanel();
//设置JLabel
JLabel Label_name = new JLabel("name");
pan.add(Label_name);
//添加textfield
JTextField tf_name = new JTextField(25);
pan.add(tf_name);
//设置密码域passwordfield
JLabel Label_pw = new JLabel("password");
pan.add(Label_pw);
JPasswordField password = new JPasswordField(20);
password.setEchoChar('*');
pan.add(password);
//设置单选按钮radiobox
JLabel Label_sex =new JLabel("sex");
pan.add(Label_sex);
JRadioButton male = new JRadioButton("male",true);
JRadioButton female = new JRadioButton("female",true);
ButtonGroup group = new ButtonGroup();
group.add(male);
group.add(female);
pan.add(male);
pan.add(female);
//设置checkbox
JLabel Label_love = new JLabel();
JCheckBox[] love={new JCheckBox("music"),new JCheckBox("football"),new JCheckBox("painting")
};
pan.add(Label_love);
pan.add(love[0]);
pan.add(love[1]);
pan.add(love[2]);
//设置下拉列表ComboBox
JLabel Label_school = new JLabel("school");
pan.add(Label_school);
String[] departmentNames = {
"computer school",
"electronic school",
"software school"
};
JComboBox department = new JComboBox(departmentNames);
department.setEditable(false);
pan.add(department);
//设置List列表框
JLabel Label_choose = new JLabel();
String[] coursesNames = {
"date structure",
"operation system",
"network",
"designer of java",
"first of computer",
"graphic"
};
JList course = new JList(coursesNames);
pan.add(Label_choose);
pan.add(course);
//设置滑动条slider
JLabel Label_score = new JLabel("addScore");
pan.add(Label_score);
JSlider addition = new JSlider(JSlider.HORIZONTAL,0,100,50);
addition.setMajorTickSpacing(10);
addition.setMinorTickSpacing(5);
addition.setPaintTicks(true);
addition.setPaintLabels(true);
addition.setSnapToTicks(true);
pan.add(addition);
//设置文件选择器JFileChoose
JFileChooser fc1 = new JFileChooser();
//设置颜色选择器JColorChooser
JColorChooser c = new JColorChooser();
//设置对话框JOptionPane
//设置计时器Timer
//Timer time = new Timer(1000,new ActionListener());
//设置组件的边框
/*
Border border1 = BorderFactory.createLineBorder(color,int);//创建一个具有指定颜色和宽度的线边框
border2 = BorderFactory.createTitledBorder(String); //创建一个新标题边框,采用默认设置,并指定了标题文本。
Border border3 = BorderFactory. createLoweredBevelBorder();//创建一个具有凹入斜面边缘的边框
Border border4 = BorderFactory.createRaisedBevelBorder();//创建一个具有凸出斜面边缘的边框
Border border5 = BorderFactory.createEtchedBevelBorder();//创建一个具有“浮雕化”外观效果的边框,将组件的当前背景色用于突出显示和阴影显示
*/
//设置分割线Jseparator
JSeparator separator1 = new JSeparator();
//设置组件的颜色
Color colors = new Color(9,255,0);
//设置组件的字体
Font fon = new Font("ja",Font.BOLD,24);
//设置光标java.awt.Cursor
//设置微调器JSpinner
JLabel Label_age = new JLabel("age");
JSpinner jsp = new JSpinner();
jsp.setValue(new Integer(20));
pan.add(Label_age);
pan.add(jsp);
//设置button
JButton butt_sub = new JButton("submit");
pan.add(butt_sub);
JButton butt_save = new JButton("save");
pan.add(butt_save);
//设置JTextArea
JLabel Label_result = new JLabel("result");
JTextArea result = new JTextArea(10,30);
JScrollPane sp = new JScrollPane(result);
pan.add(Label_result);
pan.add(sp);
//设置进度条ProgressBar
JProgressBar progbar = new JProgressBar(JProgressBar.HORIZONTAL,0,100);
progbar.setStringPainted(true);
pan.add(progbar);
//添加到容器
con.add(pan);
f.setVisible(true);
}
}