文本框
使用JTextField类
创建文本框,输入单行文本
文本区
使用JTextArea类
创建文本区,允许输入多行文本
按钮
使用JButton类
创建按钮
标签
使用JLable类
创建标签,为用户提供信息提示
复选框
使用JCheckBox类
创建复选框,复选框的右边提供名称,供用户多选
单选按钮
将多个按钮放到同一组中,用户只能从中选一个
下拉列表
使用JComboBox类
创建下拉列表,需要注意的是要说明下拉选项中的类型
JComboBox<String> comboBox = new JComboBox<String>(); //说明选项中的是String类型
JPasswordField类
创建一个密码框,可以调用setEchoChar(char c)
方法自定义回显字符,默认是*综合使用例子
import javax.swing.*;
import java.awt.*;
class myWindows extends JFrame{
JLabel name,password; //标签
JTextField nameJTextField; //文本框
JButton sure; //确认按钮
JCheckBox checkBox1,checkBox2,checkBox3; //复选框
JTextArea jTextArea; //文本输入区
JComboBox<String> comboBox; //下拉列表
ButtonGroup group; //单选按钮
JRadioButton button1,button2;
JMenuBar jMenuBar; //菜单条
JMenu jMenu; //菜单
JMenuItem jMenuItem1,jMenuItem2; //菜单项
JPasswordField jPasswordField;
myWindows(){}
myWindows(String s){
setBounds(300,300,500,300);
jMenuBar = new JMenuBar();
jMenu = new JMenu("文件");
jMenuItem1 = new JMenuItem("打开");
jMenuItem2 = new JMenuItem("新建");
jMenu.add(jMenuItem1);
jMenu.add(jMenuItem2);
jMenu.add(new JMenu("打开最近"));
jMenuBar.add(jMenu);
jMenuBar.add(new JMenu("编辑"));
setJMenuBar(jMenuBar);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout()); //设置流体布局
name = new JLabel("用户名:");
add(name);
nameJTextField = new JTextField(10); //创建可见自数为10的文本输入框
add(nameJTextField);
sure = new JButton("确定");
add(sure);
checkBox1 = new JCheckBox("香蕉");
checkBox2 = new JCheckBox("苹果");
checkBox3 = new JCheckBox("雪梨");
add(checkBox1);
add(checkBox2);
add(checkBox3);
jTextArea = new JTextArea(5,5);
comboBox = new JComboBox<String>();
comboBox.addItem("音乐天地");
comboBox.addItem("武术天地");
comboBox.addItem("游戏天地");
comboBox.addItem("象棋天地");
comboBox.addItem("吃货天地");
add(comboBox);
group = new ButtonGroup();
button1 = new JRadioButton("帅哥");
button2 = new JRadioButton("美女");
group.add(button1);
group.add(button2);
add(button1);
add(button2);
password = new JLabel("密码:");
jPasswordField = new JPasswordField(10);
jPasswordField.setEchoChar('#');
add(password);
add(jPasswordField);
add(jTextArea);
setVisible(true);
}
}
public class Example10_3 {
public static void main(String[] args) {
myWindows myWindows1 = new myWindows("新的窗口");
}
}
常用容器
因为JComponet类是Container类的子类,一次JComponent类创建的组件也都是容器,JComponent类专门提供了一下充当中间容器的组件
JPanel面板
经常使用JPanel先创建一个面板,在向这个面板添加组件,然后把这个面板添加到其他容器中.JPanel的默认布局是流体布局
(FlowLayout
)
滚动窗格
因为上面的文本区(JTextArea)不自带滚动条,因此需要滚动条是可以将其放到滚动窗格中
JScrollPane scrollPane = new JScrollPane(new JTextArea());
JSplitPane(int a ,Component b,Component c)
//参数a是取JSplitPane的静态常量HORIZONTAL_SPLIT(水平分隔)
/VERTICAL_SPLIT(水平分隔)
/后两个参数填组件JSplitPane(int a ,boolean b,Component c,Component d)
//布尔值参数当分隔线移动时组件是否连续变化add(String text, Component c)
方法将组件添加到选项卡中,并指定选项卡的名称提示为textpublic JTabbedPane(int tabPlacement)
//JTabbedPane.TOP/JTabbedPane.BUTTOM/JTabbedPane.LEFT/JTabbedPane.RIGHT
常用布局
把组件添加容器中时,如果想控制容器的位置,那么就需要学习布局设计的知识
容器可以使用方法
setLayout(布局对象)
//
FlowLayout()
//常用构造方法FlowLayout flow = new FlowLayout()
//创建流体布局对象con.setLayout(flow)
//使用流体布局东南西北中5各区域
区域由BorderLayout中的静态常量表示CENTER(中心)
/NORTH(北)
/SOUTH(南)
/WEST(西)
/EAST(东)
con.add(Component b ,BorderLayout.CENTER)
//将组件b放到布局的中心区域GridLayout grid = new GridLauout(int m, int n)
//行数位m
.列数位n
可以添加m*n个组件BoxLayout(Contaniner con ,int axis)
创建对象axis的参数有BoxLayout.X_AXIS
(行)/BoxLayout.Y_AXIS
(列)组件之间
的距离可以使用水平支撑组件
和垂直支撑组件
Box.crateHorizontalStrut(int width)
//创建不可见的水平Strut对象(水平支撑对象)(通常都是在组件之间创建)Box.crateVerticalStrut(int height)
//创建不可见的垂直Strut对象(垂直支撑对象)(通常都是在组件之间创建)import javax.swing.*;
import java.awt.*;
class BoxWindow extends JFrame{
Box bigBox,smallBox1,smallBox2;
BoxWindow(){
}
BoxWindow(String s){
setTitle(s);
init();
setBounds(300,300,500,300);
setLayout(new FlowLayout()); //设置为流体布局
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
void init(){
Container con = this.getContentPane();
con.setBackground(new Color(0xFFFFFF));
smallBox1 = Box.createVerticalBox(); //创建一个垂直盒子容器
smallBox1.add(Box.createVerticalStrut(20)); //创建不可见垂直不可见对象
smallBox1.add(new JLabel("姓名"));
smallBox1.add(Box.createVerticalStrut(10));
smallBox1.add(new JLabel("email"));
smallBox1.add(Box.createVerticalStrut(10));
smallBox1.add(new JLabel("职业"));
smallBox2 = Box.createVerticalBox();
smallBox2.add(Box.createVerticalStrut(20));
smallBox2.add(new JTextField(10));
smallBox2.add(Box.createVerticalStrut(10));
smallBox2.add(new JTextField(10));
smallBox2.add(Box.createVerticalStrut(10));
smallBox2.add(new JTextField(10));
bigBox = Box.createHorizontalBox(); //创建水平盒子容器
bigBox.add(smallBox1);
bigBox.add(Box.createHorizontalStrut(10));
bigBox.add(smallBox2);
add(bigBox);
}
}
public class Example10_4 {
public static void main(String[] args) {
BoxWindow boxWindow = new BoxWindow("盒子布局");
}
}
p.setLayout(null)
//将容器布局设置成空布局HTML表格
HTML列表
定点数和浮点数
定点数
什么是定点数?
//定点数就是小数点固定的数
定点数可以分为定点小数和定点整数
什么是定点小数?
//定点小数就是小数点在符号位的后面什么是定点整数?
//定点整数就是小数点在在后一位有效位之后(也就是最右边),分为有符号数和无符号数1
0001010
(.
)浮点数
什么是浮点数?
浮点数就是小数点的位置不固定的数,浮点表示法能够表示更大范围的数
一个实数可以有很多种写法,例如3.14可以写成10的3次方
*
0.00314
,那么二进制1.1101也可以写成2的3次方
*
0.0011101
因此浮点表示法
诞生了
浮点表示法
N(一个含小数点的二进制数)
=
2的E(阶码)次方
*
F(尾数)
1.1101
=
2的3次方
*
0.0011101
十进制数与字符的编码表示
什么是字符编码?
字符编码就是数值/字符/英文字等字符进入计算机是都要转换成二进制数,那么这些就称为字符编码
什么是十进制编码?
//十进制编码就是用4个二进制数来表示一个十进制数字
常用的十进制编码
conclude
fairly
balance
restrict
sailor
campaign
assure
respectively
remark