Java常用组件/容器与布局/计算机系统基础知识

Java常用组件/容器与布局

Java常用组件/容器与布局/计算机系统基础知识_第1张图片
常用组件

  • 文本框
    使用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("新的窗口");
    }
}

运行结果
Java常用组件/容器与布局/计算机系统基础知识_第2张图片

常用容器
因为JComponet类是Container类的子类,一次JComponent类创建的组件也都是容器,JComponent类专门提供了一下充当中间容器的组件

  • JPanel面板
    经常使用JPanel先创建一个面板,在向这个面板添加组件,然后把这个面板添加到其他容器中.JPanel的默认布局是流体布局(FlowLayout)

  • 滚动窗格
    因为上面的文本区(JTextArea)不自带滚动条,因此需要滚动条是可以将其放到滚动窗格中

    JScrollPane scrollPane = new JScrollPane(new JTextArea());
  • 拆分窗格
    将窗口拆分成两部分,上下或者左右,
    JSplitPane常用的构造方法有两种
    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)方法将组件添加到选项卡中,并指定选项卡的名称提示为text
    可以使用构造方法自定义选项卡窗格的位置(默认是上部)
    public JTabbedPane(int tabPlacement)//JTabbedPane.TOP/JTabbedPane.BUTTOM/JTabbedPane.LEFT/JTabbedPane.RIGHT

常用布局
把组件添加容器中时,如果想控制容器的位置,那么就需要学习布局设计的知识
容器可以使用方法
setLayout(布局对象)//

  • FlowLayout()布局
    流体布局,按顺序从左到右排列
    FlowLayout()//常用构造方法
    FlowLayout flow = new FlowLayout()//创建流体布局对象
    con.setLayout(flow)//使用流体布局
  • BorderLayout布局
    BorderLayout布局是window型容器的默认布局,JFrame(窗口),JDialog(对话框)都是window型容器的子类,因此他们的布局都是默认布局,布局决策是东南西北中5各区域区域由BorderLayout中的静态常量表示CENTER(中心)/NORTH(北)/SOUTH(南)/WEST(西)/EAST(东)
    使用其布局的容器可以调用add()方法
    con.add(Component b ,BorderLayout.CENTER)//将组件b放到布局的中心区域
  • GridLayout布局
    网格布局是使用较多的布局编辑器,布局决策是将容器分成若干行和若干列
    GridLayout grid = new GridLauout(int m, int n)//行数位m.列数位n可以添加m*n个组件
  • BoxLayout布局
    盒式布局/ javax.swing包提供了Box类,这个类也是Container类的子类,创建的容器成为盒式容器,盒式容器的默认布局就是盒式布局,而且是不允许更改布局类型,因此可以利用嵌套从而达到布局目的
    盒式布局的容器将组件排列在一列或一行可以使用其构造方法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("盒子布局");
    }
}

运行结果
Java常用组件/容器与布局/计算机系统基础知识_第3张图片

  • null布局
    可以把容器设置成空布局
    p.setLayout(null)//将容器布局设置成空布局
    然后组件可以通过setBounds(int x,int y ,int a ,int b)方法设置自己在在容器的什么位置,有多大

HTML

HTML表格
HTML列表

计算机系统基础知识

定点数和浮点数

定点数
什么是定点数?//定点数就是小数点固定的数
定点数可以分为定点小数和定点整数

  • 什么是定点小数? //定点小数就是小数点在符号位的后面
  • 什么是定点整数? //定点整数就是小数点在在后一位有效位之后(也就是最右边),分为有符号数和无符号数
    -10二进制为-1010,那么用原码表示是10001010 (.)

浮点数
什么是浮点数?浮点数就是小数点的位置不固定的数,浮点表示法能够表示更大范围的数
一个实数可以有很多种写法,例如3.14可以写成10的3次方 * 0.00314,那么二进制1.1101也可以写成2的3次方 * 0.0011101
因此浮点表示法诞生了
浮点表示法
N(一个含小数点的二进制数) = 2的E(阶码)次方 * F(尾数)
1.1101 = 2的3次方 * 0.0011101

十进制数与字符的编码表示
什么是字符编码?字符编码就是数值/字符/英文字等字符进入计算机是都要转换成二进制数,那么这些就称为字符编码
什么是十进制编码?//十进制编码就是用4个二进制数来表示一个十进制数字
常用的十进制编码

  • BCD码
  • 余3BCD码//在BCD码基础上加上0011后开始计算,例如BCD码从0000开始,那么余3码就0011开始
  • 格雷码 //相邻的两个代码之间只有一位不同

CET4P157

conclude
fairly
balance
restrict
sailor
campaign
assure
respectively
remark

你可能感兴趣的:(Java,Swing)