java.awt/抽象窗口工具集
界面声明:
JFrame jframe = new JFrame();
方法:
jframe.setVisible(true)//窗口显示 jframe.setLocation(x轴位置,y轴位置)//定义窗口显示位置 jframe.setSize(宽度,高度)//设置窗口的大小 jframe.add()//添加控件或者容器 jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //点击界面的右上角“X”图标时关闭程序 //默认为HIDE_ON_CLOSE,隐藏界面 //该程序不会自动执行 jframe.setTitle("界面名字")//设置界面的名字 pack();//打包,让窗口中控件更紧凑 jframe.setResizable(falae);//设置让窗口大小不可变 jframe.dispose();//关闭当前窗口 jframe.setBounds(x,y,宽,高)//设定位置,大小
自定义布局
jframe.setLayout(null);//布局设定为空 //在自定义布局下的每个控件需要设定大小与摆放位置
边框布局/BorderLayout
jframe.setLayout(new BorderLayout());//设定为边框布局管理器 //该管理器设定布局为5个块东、南、西、北、中 //需要注意的是北方的布局与南方的布局是独占一行的 /**边框布局的add()方法*/ jframe.add(控件,BorLayout.方向名词)
流式布局/FlowLayout
jframe.setLayout(new FlowLayout()); //如同HTML中的浮动 //浮动布局会随着界面大小变化而变化
网格布局/GridLayout
jframe.setLayout(new GridLayout()); //先满足行数要求,列数自动 //网格布局中,控件的大小是当前界面大小的平均
控件及方法
JButton/按钮
JButton btn = new JButton("确定");//生成按钮,并定义按钮中的文字
JPanel/局部容器
特性默认布局管理为FlowLayout
JLabel/文字显示
JLabel jl = new JLabel(显示的文字);
JTextField/输入框
JTextField jtf = new JTextField(输入框长度); String str = jtf.getText();//获取控件输入的值,返回对象是字符串 jtf.setText(String str);//向字符串中输入信息 jtf.setHorizontaAlignment(JTextField.RIGHT);//水平右边开始显示
jtf.setEditable(false);//设置输入框中数据不可改变
JComboBox<>/下拉列表,范型
JComboBox jcb = new JComboBox(); jcb.addTtem();//添加下拉列表的一项 jcb.getSelectedItem(); //获取选择的下拉列表得值 //返回值为Objecet,需要转型 jcb.addItemListener(new ItemListener(){//下拉列表独有监视器 //如果下拉菜单状态改变会触发两次,一次为取消当前对象,依次为选择新对象 public void itemStatechanged(TtemEvent e){ if(e.getStatechanged == ItemEvent.SELECTED){}//让其只执行新选择的事件 } });
JRadioButton/单选按钮&&ButtonGroup/单选组
JRadioButton jrb = new JRadioButton(单选按钮名); ButtonGroup bg = new ButtonGroup(); bg.add(jrb);//单选按钮单独new时时单独的,需要通过添加到ButtonGroup中归为一组
JPasswordField/密码框
JPasswordField jpf = new JPasswordField(输入框长度); String str = new String(jpf.getPassword()); //获取密码框中的输入 //因返回类型是char[],在这里我们转化为String类型
JlistFrame/列表与JScrollpane/滚动条
JlistFrame<> jf = new JlistFrame<>(E[]); //列表中不可以放集合 jf.setVisibleRowCount(8);//设置默认可见高度 jf.setFixedcellwidth(int);//设置宽度 jf.setFixedcellHeight(int);//设置每行高度 JScrollpane jsc = new JScrollpane(jf);//为列表添加滚动条
Jlist没有直接向里放如集合对象的方法或者构造器,只有一个setModel方法,但是该方法需要一个ListModel接口的对象
DefaultListModel是ListModel的实现类,其类似于ArrayList.DefaultListModel的添加addElement();删除removeElement();
Jtable/表格
JTable jt = new JTable(表头数组,数据对象数组(二维));
Container/容器
类似于JPanel,由于windos的缓冲显示问题,为了集体显示
弹出框
JoptionPane.showMessageDialog(1,2,3,4); //1.给null表示在屏幕的中间显示 //2.就是要显示的信息 //3.标题 //4.信息前显示的图标样式
Font/字体
Font font = new Font(字体,样式,大小); JLable的对象.setFont(font);//添加字体样式 JLable的对象.setForeground(color.颜色单词);//改变字体颜色
事件监听器
btn.addActionListenter(new ActionListener(){ public void actionperformed(ActionEvent e){ //控件触动时要产生的操作 e.getActionCommand();//返回事件源的名字 e.getSource();//返回发出这件事事件源本身,返回类型为Object } });
设计界面步骤
-
自定义界面类名 extends Frame
-
在构造器中书写窗口的属性,jframe.setVisible(true)//窗口显示,必须有
-
在其他类中创建你的自定义类