欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java学习笔记(四)

程序员文章站 2022-05-12 22:29:31
...

十七、图形化界面-Swing

    在Java中所有的Swing都保存在javax.swing包中

    组件:JComponent

        常用的组件是JButton、JLabel、JTextField

    容器:Container

        所有的组件都应该放到容器之中。在容器之中,所有的组件都可以设置在容器中的位置、大小等等

        常用的容器是JFrame、JDialog、JPanel、JScrollPane(滚动条)

    布局管理器:LayoutManager

        使用布局管理器可以使容器中的组件按照指定的位置进行摆放,另外的一个好处是,即使容器改变了大小,布局管理器也可以准确的把组件放到指定的位置,这样就可以有效的保证版面不会混乱。

        常用的有FlowLayout、GridLayout

    (一) 容器之JFrame(java.swing.JFrame)

Java学习笔记(四)

        背景颜色的设置利用Color.颜色英文大写(导包java.awt.Color)

        补充:Dimension类(java.awt.Dimension)

Java学习笔记(四)

                    Point类:(java.awt.Point)

Java学习笔记(四)

        (二) 组件之JLabel(java.swing.JLabel)

            JLabel组件表示的是一个标签,本身是用于显示信息的,一般情况下是不能直接更改其显示内容的。创建完的Label对象可以通过容器(比如JFrame)中的add()方法加入到容器之中。

Java学习笔记(四)

            补充Font类(java.awt.Font)

Java学习笔记(四)

//例子:
public static void main(String args[]) {
		JFrame frame = new JFrame("Welcome To MLDN") ;	// 实例化窗体对象
		JLabel lab = new JLabel("MLDN", JLabel.CENTER);// 实例化对象,使用居中对齐
		Font fnt = new Font("Serief", Font.ITALIC + Font.BOLD, 28);
		lab.setFont(fnt) ;	
		lab.setForeground(Color.RED) ;			// 设置标签的文字颜色
		frame.add(lab) ;					// 向容器中加入组件
		Dimension dim = new Dimension() ;			// 实例化Dimension对象
		dim.setSize(200, 70) ;				// 设置大小
		frame.setSize(dim) ;				// 设置组件大小
		frame.setBackground(Color.WHITE) ;			// 设置窗体的背景颜色
		Point point = new Point(300,200) ;			// 设置显示的坐标点
		frame.setLocation(point) ;				// 设置窗体的显示位置
		frame.setVisible(true) ;				// 让组件显示
	}

        (三) 组件之JButton(java.swing.JButton)

Java学习笔记(四)

        (四) 组件之单行文本输入框JTextField(java.swing.JTextField)

Java学习笔记(四)

        (五) 组件之密码文本输入框JPasswordField(java.swing.JPasswordField)

                              Java学习笔记(四)

        (六) 组件之多行文本输入框JTextArea(java.swing.JTextArea)

Java学习笔记(四)

//例子(为文本域加入滚动条):
public static void main(String args[]) {
		JFrame frame = new JFrame("Welcome To MLDN") ;	// 实例化窗体对象
		JTextArea jta = new JTextArea(3,20) ;		// 构造一个文本域
		jta.setLineWrap(true) ;			// 如果内容过长,自动换行
		// 在文本域上加入滚动条,水平和垂直滚动条始终出现
		JScrollPane scr = new JScrollPane(jta,
				JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
				JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
		JLabel lab = new JLabel("多行文本域:") ;		// 定义标签
		frame.setLayout(new GridLayout(2,1));		// 设置布局管理器	
		frame.add(lab) ;				// 向容器中增加组件
		frame.add(scr) ;				// 向容器中增加组件
		frame.setSize(300, 150) ;			// 设置窗体大小
		frame.setLocation(300,200) ;			// 设置窗体的显示位置
		frame.setVisible(true) ;			// 让组件显示
	}

      (七) 布局管理器之FlowLayout(java.awt.FlowLayout)

                组件像流水一样依次进行排列

                         Java学习笔记(四)

        (八) 布局管理器之BorderLayout(java.awt.BorderLayout)

            将一个窗体的版面划分成东、西、南、北、中五个区域,可以直接将需要的组件放到这五个区域中即可。

Java学习笔记(四)

        (九) 布局管理器之GridLayout(java.awt.GridLayout)

                    表格式存放组件

Java学习笔记(四)

        (十) 布局管理器之绝对定位

                               Java学习笔记(四)

        (十一) JMenu、JMenuBar、JMenuItem

                JMenu由JMenuItem组成,JMenuBar由JMenu组成。

                                      Java学习笔记(四)

                                      Java学习笔记(四)

                                       Java学习笔记(四)

//例子:
public static void main(String[] args) {
		JFrame frame = new JFrame("Welcome To MLDN"); 	// 定义窗体
		JTextArea text = new JTextArea(); 		// 定义文本域
		text.setEditable(true); 			// 定义文本组件可编辑
		frame.getContentPane().add(new JScrollPane(text)); // 在面板中加入文本框及滚动条
		JMenu menuFile = new JMenu("文件");			// 定义JMenu组件
		menuFile.setIcon(new ImageIcon("d:" + File.separator + "icons"+ File.separator + "file.gif"));// 定义显示图标
		JMenuBar menuBar = new JMenuBar(); 					// 定义JMenuBar
		JMenuItem newItem = new JMenuItem("新建", 
			new ImageIcon("d:" + File.separator + "icons" + File.separator + "new.gif"));	// 创建JMenuItem
		JMenuItem openItem = new JMenuItem("打开", 
			new ImageIcon("d:" + File.separator + "icons" + File.separator + "open.gif"));	// 创建JMenuItem
		JMenuItem closeItem = new JMenuItem("关闭", 
			new ImageIcon("d:" + File.separator + "icons" + File.separator + "close.gif"));	// 创建JMenuItem
		JMenuItem exitItem = new JMenuItem("退出", 
			new ImageIcon("d:" + File.separator + "icons" + File.separator + "exit.gif"));	// 创建JMenuItem
		newItem.setMnemonic('N') ;						// 设置快捷键N
		openItem.setMnemonic('O') ;					// 设置快捷键O
		closeItem.setMnemonic('C') ;					// 设置快捷键C
		exitItem.setMnemonic('E') ;					// 设置快捷键E
		newItem.setAccelerator(KeyStroke.getKeyStroke('N',java.awt.Event.CTRL_MASK));		// Ctrl + N
		openItem.setAccelerator(KeyStroke.getKeyStroke('O',java.awt.Event.CTRL_MASK));		// Ctrl + O
		closeItem.setAccelerator(KeyStroke.getKeyStroke('C',java.awt.Event.ALT_MASK));		// Alt + C
		exitItem.setAccelerator(KeyStroke.getKeyStroke('E',	java.awt.Event.ALT_MASK));		// Alt + E
		menuFile.add(newItem) ;					// 加入菜单项
		menuFile.add(openItem) ;					// 加入菜单项
		menuFile.add(closeItem) ;					// 加入菜单项
		menuFile.addSeparator() ;					// 加入分隔线
		menuFile.add(exitItem) ;					// 加入菜单项
		menuBar.add(menuFile);					// 加入JMenu
	}

         (十二) 事件处理

                              Java学习笔记(四)

            首先,对于某种类型的事件XXXEvent,要想接收并处理该类事件,必须定义相应的事件监听器类,这个类需要实现针对该类事件的特定接口XXXListener。

            其次,事件监听器类要实现该接口XXXListener中对事件处理的方法。

            第三,对于事件源,必须使用addXXXListener(XXXListener)注册事件监听器类,以便当事件产生时,能够被监听器接收和处理。

            常见的事件监听:

Java学习笔记(四)

Java学习笔记(四)

Java学习笔记(四)

            在整个事件处理中Java提供了很多的适配器类XXXAdapter,方便用户进行事件的处理,如果只想覆写一两个方法,就可以用适配器类作为匿名内部类使用。

十八、泛型

    泛型类定义格式:

        [访问权限] class 类名称<泛型类型1,泛型类型2,…泛型类型3>{

                     [访问权限] 泛型类型标识 变量名称 ;

                     [访问权限] 泛型类型标识 方法名称(){} ;

                     [访问权限] 返回值类型声明 方法名称(泛型类型标识 变量名称){} ;}

     泛型对象定义:

            类名称<具体类> 对象名称 =new 类名称<具体类>() ;

     泛型方法的简单定义:

            [访问权限] <泛型标识> 泛型标识方法名称([泛型标识 参数名称])

     Collection(类集): 一组单独元素集合

            List :保存的对象有顺序,按照元素的索引位置检索对象。允许重复元素。

            Set :不允许保存重复的元素。元素之间没有顺序。靠元素值检索对象。

            List中最主要的是动态数组(ArrayList(java.util.ArrayList))










相关标签: Java 笔记