失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 辽宁自考 Java语言程序设计 课程代码 01019 备考整理(四)

辽宁自考 Java语言程序设计 课程代码 01019 备考整理(四)

时间:2023-09-26 05:30:18

相关推荐

辽宁自考 Java语言程序设计 课程代码 01019 备考整理(四)

Java语言程序设计 备考整理 因教材过于陈旧建议仅作复习使用

Java语言程序设计第8章 图形用户界面Swing类的层次结构容器窗口容器对话框容器面板容器 组件组件布局管理顺序布局管理器边界布局管理器卡片布局管理器网格布局管理器组件的精确定位方式 事件处理机制Jav的事件处理机制通过自定义内部类创建监听器对象在注册时通过匿名类直接创建监听器对象通过主类创建监听对象实现多个事件接口的方式事件适配器类与内部类内部类 创建容器与组件的基本步骤小结 第9章 高级组件菜单栏工具栏树形菜单选项卡面板JApplet容器表格

Java语言程序设计

考试用书:《Java语言程序设计》(第三版)

出版社:清华大学出版社

作者:邵丽萍、绍光亚、张后扬

出版时间:

第8章 图形用户界面

Swing类的层次结构

容器

可以添加其它组件的组件被称为容器。

窗口容器

JFram是一个用来创建窗口的类,它是一个顶级容器框架,在其中可以添加各种组件。

使用方式:

import javax.swing.*;public class JF0 extends JFrame {public JF0 (String s){super(s); //调用父类构造方法setBounds(200,200,500,400); //设置大小setVisible(true); //设置是否显示try{UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); // 显示窗口外观}catch (Exception e){setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //处理如果外观显示未成功 则关闭窗口对象}}}

对话框容器

对话框(Dialog类)是GUI中常见的窗口对象。对话框和普通窗口最大的区别是对话框是依附在某个窗口上的,一旦它所依附的窗口关闭了,对话框也要随着关闭。在对话框窗口中也可以添加其它组件,所以它也是一个容器。

import javax.swing.*;public class JD extends JDialog {public JD (JFrame f, String s){super(f,s); //调用父类构造方法setBounds(300,300,200,200); //设置大小setVisible(true); //设置是否显示setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); //设置默认关闭方法}}

面板容器

面板(JPanel)类是一个无边框的容器,可以包含其它面板或组件,使用面板的目的是为了区分层次,分区域管理各种组件。面板与顶级容器不同,它是一个中间容器,它即是容器又是组件。一个窗口中可以添加多个面板对象。

import javax.swing.*;import java.awt.*;public class JP1 extends JFrame {public JP1(JFrame f, int x, int y, int w, int h){Container c = getContentPane(); //通过JFrame 自带的方法创建面板c.setLayout(null);c.setBackground(Color.ORANGE);f.add(c); //添加面板到 fJPanel p = new JPanel(); //通过new的方式创建面板p.setBounds(x,y,w,h);p.setBackground(Color.blue);c.add(p);//添加面板到面板c}}JP1 jp1 = new JP1(new JF0("添加面板的窗口"),100,50,200,200);

组件

组件(JComponent)是构成GUI的基本要素,通过对不同事件的响应来完成和用户的交互或组件之间的交互。组件一般作为一个对象放置在容器内。通过容器的add方法可以吧组件加入到容器中。

这部分主要是实践会考,还是多练习熟悉方法和结构。

JLabel //标签组件JButton //按钮组件TextField //文本框组件JTextArea //文本区组件,多行文本JRadioButton //单选按钮组件JCheckBox //复选框组件JComBoBox //下拉列表组件

组件布局管理

组件布局管理器管理各个组件的位置,在容器中使用setLayout方法可以调用不同的布局管理器。

顺序布局管理器

顺序布局(FlowLayout) 是最基本的布局管理器。把组件一个一个从左到右排列,一行排满之后转到下一行继续排列。它会根据容器大小随时调整容器中的组件大小。

边界布局管理器

边界布局(BorderLayout)管理器把容器分为5个区:北区、南区、东区、西区和中区。

边界布局只能容纳5个组件即东、南、西、北、中。(可以嵌套组件,但是嵌套的一层只能有5个组件)

卡片布局管理器

卡片布局(CardLayout)管理器可以管理多个组件,它将组件像卡片一样叠放起来,每次只显示一个。

网格布局管理器

网格布局(GridLayout)管理器把容器区域分成若干个网格,每个网格可以放一个组件。

创建网格布局管理器时可以给出网格的行数和列数。

组件的精确定位方式

容器中存放组件也可以不用布局管理器。

//第一步setLayout(null); //先通过设置布局管理器为null//第二步setBounds(int x, int y, int w, int h); //xy是组件左上角的坐标点,wh是组件的大小。

事件处理机制

Jav的事件处理机制

事件:程序和用户的交互是通过事件实现的。实现发生后会交给事件处理的方法进行处理,如果没有编写处理方法,程序就不能和用户交互,事件将被忽略。事件处理方法:当发生事件时做出的反应,通过监听器对象可以对事件源对象进行监听,当监听到事件时,就可以调用事件处理方法处理事件问题。事件处理模型:事件源对象、事件监听器对象、事件对象。

(1)能产生事件的组件叫做事件源,如按钮。

(2)事件监听器注册在事件源对象(按钮或包含按钮的容器上),用来监听事件是否发生,当事件发生时将调用事件处理方法解决问题。

(3)事件对象用来封装已发生的事件信息,在事件发生后,将信息传递给事件处理方法进行处理。

通过自定义内部类创建监听器对象

import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class JB1 extends JFrame {public JB1(JFrame f, JPanel p){f.add(p);p.add(new Label("按一下可以听到响声", Label.CENTER));Button b = new Button("按钮");p.add(b);BHandler h = new BHandler();b.addActionListener(h);}public static void main(String args[]){JB1 jb1 = new JB1(new JF0("单击按钮事件"), new JPanel());}private class BHandler implements ActionListener {@Overridepublic void actionPerformed(ActionEvent e) {Toolkit.getDefaultToolkit().beep();}}}

在注册时通过匿名类直接创建监听器对象

import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class JB2 extends JFrame {public JB2(JFrame f, JPanel p){f.add(p);p.add(new Label("按一下可以听到响声", Label.CENTER));Button b = new Button("按钮");p.add(b);b.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {Toolkit.getDefaultToolkit().beep();}});}public static void main(String args[]){JB1 jb1 = new JB1(new JF0("单击按钮事件"), new JPanel());}}

通过主类创建监听对象

import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class JB3 extends JFrame implements ActionListener {public JB3(JFrame f, JPanel p){f.add(p);p.add(new Label("按一下可以听到响声", Label.CENTER));Button b = new Button("按钮");p.add(b);b.addActionListener(this);}public static void main(String args[]){JB1 jb1 = new JB1(new JF0("单击按钮事件"), new JPanel());}@Overridepublic void actionPerformed(ActionEvent e) {Toolkit.getDefaultToolkit().beep();}}

实现多个事件接口的方式

一般是在主类实现多个接口,然后注册这些接口的实现。

import java.applet.Applet;import java.awt.*;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.awt.event.MouseMotionListener;public class DrawLine extends Applet implements MouseListener, MouseMotionListener {int x1, y1, x2 , y2;public void init(){addMouseListener(this);addMouseMotionListener(this);}public void pain(Graphics g){g.drawLine(x1, y1, x2 , y2);}@Overridepublic void mouseClicked(MouseEvent e) {}@Overridepublic void mousePressed(MouseEvent e) {x1 = e.getX();y1 = e.getY();}@Overridepublic void mouseReleased(MouseEvent e) {}@Overridepublic void mouseEntered(MouseEvent e) {}@Overridepublic void mouseExited(MouseEvent e) {}@Overridepublic void mouseDragged(MouseEvent e) {x2 = e.getX();y2 = e.getY();repaint();}@Overridepublic void mouseMoved(MouseEvent e) {}}

事件适配器类与内部类

java.awt.event 包中还声明了一组带Adapter标记的类,称为适配器类。它们是一些抽象类,其中声明方法与接口方法相同。使用Adapter 可以不用实现全部的方法,实现精简代码的目的。

import java.applet.Applet;import java.awt.*;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.awt.event.MouseMotionListener;public class DrawLine extends Applet implements MouseListener, MouseMotionListener {int x1, y1, x2 , y2;public void init(){addMouseListener(new M1());addMouseMotionListener(new M2());}public void pain(Graphics g){g.drawLine(x1, y1, x2 , y2);}private M1 extends MouseAdpter {public void mousePressed(MouseEvent e) {x1 = e.getX();y1 = e.getY();}}private M2 extends MouseMotionAdpter {public void mouseDragged(MouseEvent e) {x2 = e.getX();y2 = e.getY();repaint();}}}

内部类

Java中可以把一个类声明为另一个类的成员。这样的类被称为内部类。

内部类可以无条件的使用主类的所有成员,包括私有成员。内部类的作用域仅限于包容它的主类。

内部类可以被声明为static、最终类、抽象类。

创建容器与组件的基本步骤小结

(1)创建顶级容器(通常为窗体对象)。

(2)创建内容面板,设置背景颜色,设置布局管理器。

(3)创建普通面板,设置背景颜色,设置位置、大小,设置布局管理器。

(4)创建组件,设置背景颜色,设置其位置、大小、字体等。

(5)将面板添加到窗口,将组件添加到指定面板。

(6)创建事件监听器,实现事件接口方法。

(7)给事件源注册监听器。

第9章 高级组件

菜单栏

菜单栏是图形用户界面的重要组成部分,主要由菜单棒(MenuBar)、菜单(Menu)、菜单项(MenuItem)和复选菜单项(CheckBoxMenuItem)等对象组成。

工具栏

树形菜单

选项卡面板

JApplet容器

表格

如果觉得《辽宁自考 Java语言程序设计 课程代码 01019 备考整理(四)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。