关键词:
实验十三 图形界面事件处理技术
实验时间 2018-11-22
1、实验目的与要求
(1) 掌握事件处理的基本原理,理解其用途;
(2) 掌握AWT事件模型的工作机制;
(3) 掌握事件处理的基本编程模型;
(4) 了解GUI界面组件观感设置方法;
(5) 掌握WindowAdapter类、AbstractAction类的用法;
(6) 掌握GUI程序中鼠标事件处理技术。
本周理论知识在最后
2、实验内容和步骤
实验1: 导入第11章示例程序,测试程序并进行代码注释。
测试程序1:
l 在elipse IDE中调试运行教材443页-444页程序11-1,结合程序运行结果理解程序;
l 在事件处理相关代码处添加注释;
l 用lambda表达式简化程序;
l 掌握JButton组件的基本API;
l 掌握Java中事件处理的基本编程模型。
代码:
package button; import java.awt.*; import javax.swing.*; /** * @version 1.34 2015-06-12 * @author Cay Horstmann */ public class ButtonTest public static void main(String[] args) //lambda表达式 EventQueue.invokeLater(() -> JFrame frame = new ButtonFrame(); frame.setTitle("ButtonTest"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); );
package button; import java.awt.*; import java.awt.event.*; import javax.swing.*; /** * A frame with a button panel */ public class ButtonFrame extends JFrame private JPanel buttonPanel; private static final int DEFAULT_WIDTH = 300; private static final int DEFAULT_HEIGHT = 200; public ButtonFrame() setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT); // 创建一个带文本的按钮 JButton yellowButton = new JButton("Yellow"); JButton blueButton = new JButton("Blue"); JButton redButton = new JButton("Red"); buttonPanel = new JPanel(); // 添加按钮到JPanel中 buttonPanel.add(yellowButton); buttonPanel.add(blueButton); buttonPanel.add(redButton); // 添加JPanel到框架中 add(buttonPanel); // 创建按钮操作 ColorAction yellowAction = new ColorAction(Color.YELLOW); ColorAction blueAction = new ColorAction(Color.BLUE); ColorAction redAction = new ColorAction(Color.RED); // 把操作关联至按钮上 yellowButton.addActionListener(yellowAction); blueButton.addActionListener(blueAction); redButton.addActionListener(redAction); /** * An action listener that sets the panel‘s background color. */ private class ColorAction implements ActionListener //添加事件监听器 //设置私有属性backgroundColor private Color backgroundColor; public ColorAction(Color c) backgroundColor = c; public void actionPerformed(ActionEvent event) //在事件发生时,调用actionPerformed方法 buttonPanel.setBackground(backgroundColor);
运行结果:
略微简化后的ButtonFrame:
package button; import java.awt.*; import java.awt.event.*; import javax.swing.*; /** * A frame with a button panel */ public class ButtonFrame extends JFrame private JPanel buttonPanel; private static final int DEFAULT_WIDTH = 300; private static final int DEFAULT_HEIGHT = 200; public ButtonFrame() setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT); buttonPanel = new JPanel(); // add buttons to panel /*buttonPanel.add(yellowButton); buttonPanel.add(blueButton); buttonPanel.add(redButton);*/ // add panel to frame add(buttonPanel); // create button actions /*ColorAction yellowAction = new ColorAction(Color.YELLOW); ColorAction blueAction = new ColorAction(Color.BLUE); ColorAction redAction = new ColorAction(Color.RED);*/ // associate actions with buttons /*yellowButton.addActionListener(yellowAction); blueButton.addActionListener(blueAction); redButton.addActionListener(redAction);*/ makeButton("Yellow",Color.YELLOW); makeButton("Blue",Color.BLUE); makeButton("Red",Color.RED); public void makeButton(String name , Color backgroundColor) JButton button=new JButton(name); buttonPanel.add(button); ColorAction action=new ColorAction(backgroundColor); button.addActionListener(action); /** * An action listener that sets the panel‘s background color. */ private class ColorAction implements ActionListener private Color backgroundColor; public ColorAction(Color c) backgroundColor = c; public void actionPerformed(ActionEvent event) buttonPanel.setBackground(backgroundColor);
lambda表达式简化后的ButtonFrame:
package demo; import java.awt.*; import java.awt.event.*; import javax.swing.*; /** * A frame with a button panel */ public class ButtonFrame extends JFrame private JPanel buttonPanel; private static final int DEFAULT_WIDTH = 300*2; private static final int DEFAULT_HEIGHT = 200*2; public ButtonFrame() setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT); buttonPanel = new JPanel(); makeButton("黄色", Color.yellow); makeButton("蓝色", Color.blue); makeButton("红色", Color.red); makeButton("绿色",Color.green); add(buttonPanel); protected void makeButton(String name,Color backgound) // create buttons JButton button = new JButton(name); // add buttons to panel buttonPanel.add(button); // create button actions //方法一:通过内部类方式实现 /*ColorAction action = new ColorAction(backgound); // associate actions with buttons button.addActionListener(action);*/ //方法二:匿名内部类方式实现 /*button.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) buttonPanel.setBackground(background); );*/ //方法三通过lambda表达式实现 button.addActionListener((e)-> buttonPanel.setBackground(backgound); ); /** * An action listener that sets the panel‘s background color. */ //这是实现了 ActionListener接口的内部类 /*private class ColorAction implements ActionListener private Color backgroundColor; public ColorAction(Color c) backgroundColor = c; public void actionPerformed(ActionEvent event) buttonPanel.setBackground(backgroundColor); */
测试程序2:
l 在elipse IDE中调试运行教材449页程序11-2,结合程序运行结果理解程序;
l 在组件观感设置代码处添加注释;
l 了解GUI程序中观感的设置方法。
代码:
package plaf; import java.awt.*; import javax.swing.*; /** * @version 1.32 2015-06-12 * @author Cay Horstmann */ public class PlafTest public static void main(String[] args) EventQueue.invokeLater(() -> JFrame frame = new PlafFrame(); frame.setTitle("PlafTest"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); );
package plaf; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.SwingUtilities; import javax.swing.UIManager; /** * A frame with a button panel for changing look-and-feel */ public class PlafFrame extends JFrame private JPanel buttonPanel; public PlafFrame() buttonPanel = new JPanel(); //UIManager管理组件观感 UIManager.LookAndFeelInfo[] infos = UIManager.getInstalledLookAndFeels(); for (UIManager.LookAndFeelInfo info : infos) makeButton(info.getName(), info.getClassName()); add(buttonPanel); pack(); /** * Makes a button to change the pluggable look-and-feel. * @param name the button name * @param className the name of the look-and-feel class */ private void makeButton(String name, String className) // 添加按钮至Panel JButton button = new JButton(name); buttonPanel.add(button); // 建立按钮操作 button.addActionListener(event -> // 按钮操作: 选择一个新的外观 try UIManager.setLookAndFeel(className); SwingUtilities.updateComponentTreeUI(this); pack(); catch (Exception e) e.printStackTrace(); );
测试程序3:
l 在elipse IDE中调试运行教材457页-458页程序11-3,结合程序运行结果理解程序;
l 掌握AbstractAction类及其动作对象;
掌握GUI程序中按钮、键盘动作映射到动作对象的方法。
代码:
package action; import java.awt.*; import javax.swing.*; /** * @version 1.34 2015-06-12 * @author Cay Horstmann */ public class ActionTest public static void main(String[] args) EventQueue.invokeLater(() -> JFrame frame = new ActionFrame(); frame.setTitle("ActionTest"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); );
package action; import java.awt.*; import java.awt.event.*; import javax.swing.*; /** * A frame with a panel that demonstrates color change actions. */ public class ActionFrame extends JFrame private JPanel buttonPanel; private static final int DEFAULT_WIDTH = 300; private static final int DEFAULT_HEIGHT = 200; public ActionFrame() setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT); buttonPanel = new JPanel(); // define actions Action yellowAction = new ColorAction("Yellow", new ImageIcon("yellow-ball.gif"), Color.YELLOW); Action blueAction = new ColorAction("Blue", new ImageIcon("blue-ball.gif"), Color.BLUE); Action redAction = new ColorAction("Red", new ImageIcon("red-ball.gif"), Color.RED); // add buttons for these actions buttonPanel.add(new JButton(yellowAction)); buttonPanel.add(new JButton(blueAction)); buttonPanel.add(new JButton(redAction)); // add panel to frame add(buttonPanel); // associate the Y, B, and R keys with names InputMap imap = buttonPanel.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); imap.put(KeyStroke.getKeyStroke("ctrl Y"), "panel.yellow"); imap.put(KeyStroke.getKeyStroke("ctrl B"), "panel.blue"); imap.put(KeyStroke.getKeyStroke("ctrl R"), "panel.red"); // associate the names with actions ActionMap amap = buttonPanel.getActionMap(); amap.put("panel.yellow", yellowAction); amap.put("panel.blue", blueAction); amap.put("panel.red", redAction); public class ColorAction extends AbstractAction /** * Constructs a color action. * @param name the name to show on the button * @param icon the icon to display on the button * @param c the background color */ public ColorAction(String name, Icon icon, Color c) putValue(Action.NAME, name); putValue(Action.SMALL_ICON, icon); putValue(Action.SHORT_DESCRIPTION, "Set panel color to " + name.toLowerCase()); putValue("color", c); public void actionPerformed(ActionEvent event) Color c = (Color) getValue("color"); buttonPanel.setBackground(c);
运行结果:
测试程序4:
l 在elipse IDE中调试运行教材462页程序11-4、11-5,结合程序运行结果理解程序;
l 掌握GUI程序中鼠标事件处理技术。
代码:
package mouse; import java.awt.*; import javax.swing.*; /** * @version 1.34 2015-06-12 * @author Cay Horstmann */ public class MouseTest public static void main(String[] args) EventQueue.invokeLater(() -> JFrame frame = new MouseFrame(); frame.setTitle("MouseTest"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); );
package mouse; import javax.swing.*; /** * A frame containing a panel for testing mouse operations */ public class MouseFrame extends JFrame public MouseFrame() add(new MouseComponent()); pack();
package mouse; import java.awt.*; import java.awt.event.*; import java.awt.geom.*; import java.util.*; import javax.swing.*; /** * A component with mouse operations for adding and removing squares. */ public class MouseComponent extends JComponent private static final int DEFAULT_WIDTH = 300; private static final int DEFAULT_HEIGHT = 200; private static final int SIDELENGTH = 10; private ArrayList<Rectangle2D> squares; private Rectangle2D current; // the square containing the mouse cursor public MouseComponent() squares = new ArrayList<>(); current = null; addMouseListener(new MouseHandler()); addMouseMotionListener(new MouseMotionHandler()); public Dimension getPreferredSize() return new Dimension(DEFAULT_WIDTH, DEFAULT_HEIGHT); public void paintComponent(Graphics g) Graphics2D g2 = (Graphics2D) g; // draw all squares for (Rectangle2D r : squares) g2.draw(r); /** * Finds the first square containing a point. * @param p a point * @return the first square that contains p */ public Rectangle2D find(Point2D p) for (Rectangle2D r : squares) if (r.contains(p)) return r; return null; /** * Adds a square to the collection. * @param p the center of the square */ public void add(Point2D p) double x = p.getX(); double y = p.getY(); current = new Rectangle2D.Double(x - SIDELENGTH / 2, y - SIDELENGTH / 2, SIDELENGTH, SIDELENGTH); squares.add(current); repaint(); /** * Removes a square from the collection. * @param s the square to remove */ public void remove(Rectangle2D s) if (s == null) return; if (s == current) current = null; squares.remove(s); repaint(); private class MouseHandler extends MouseAdapter public void mousePressed(MouseEvent event) // add a new square if the cursor isn‘t inside a square current = find(event.getPoint()); if (current == null) add(event.getPoint()); public void mouseClicked(MouseEvent event) // remove the current square if double clicked current = find(event.getPoint()); if (current != null && event.getClickCount() >= 2) remove(current); private class MouseMotionHandler implements MouseMotionListener public void mouseMoved(MouseEvent event) // set the mouse cursor to cross hairs if it is inside // a rectangle if (find(event.getPoint()) == null) setCursor(Cursor.getDefaultCursor()); else setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR)); public void mouseDragged(MouseEvent event) if (current != null) int x = event.getX(); int y = event.getY(); // drag the current rectangle to center it at (x, y) current.setFrame(x - SIDELENGTH / 2, y - SIDELENGTH / 2, SIDELENGTH, SIDELENGTH); repaint();
运行结果:
实验2:结对编程练习
利用班级名单文件、文本框和按钮组件,设计一个有如下界面(图1)的点名器,要求用户点击开始按钮后在文本输入框随机显示2017级网络与信息安全班同学姓名,如图2所示,点击停止按钮后,文本输入框不再变换同学姓名,此同学则是被点到的同学姓名。
代码(本人编写,无法实现停止点名):
package demo; import java.awt.*; import javax.swing.*; /** * @version 1.34 2015-06-12 * @author Cay Horstmann */ public class ButtonTest public static void main(String[] args) EventQueue.invokeLater(() -> JFrame frame = new ButtonFrame(); frame.setTitle("随机点名器"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); );
package demo; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.ArrayList; import java.util.Scanner; import java.util.Timer; import java.util.TimerTask; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; /** * A frame with a button panel * * @param <SheThread> */ public class ButtonFrame extends JFrame private static ArrayList<String> studentlist; private JPanel buttonPanel; private static final int DEFAULT_WIDTH = 300; private static final int DEFAULT_HEIGHT = 200; private static volatile boolean flag = false; public ButtonFrame() try String temp = null; studentlist = new ArrayList<String>(); File file = new File("C:\\Users\\ASUS\\Desktop\\studentnamelist.txt"); FileInputStream fis = new FileInputStream(file); BufferedReader in = new BufferedReader(new InputStreamReader(fis)); while ((temp = in.readLine()) != null) Scanner linescanner = new Scanner(temp); linescanner.useDelimiter(" "); studentlist.add(temp); String[] arr = (String[]) studentlist.toArray(new String[studentlist.size()]); setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT); buttonPanel = new JPanel(); buttonPanel.setLayout(null); JLabel jLabel = new JLabel("随机点名器"); JButton jButton = new JButton("点名"); JButton jbutton = new JButton("点名"); jLabel.setBounds(130, 40, 200, 30); jButton.setBounds(110, 90, 60, 30); buttonPanel.setBackground(Color.GREEN); jButton.setBackground(Color.RED); jButton.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) Timer timer = new Timer(); TimerTask timerTask = new TimerTask() public void run() String[] name = arr; jLabel.setText(name[(int) Math.round(Math.random() * 42)]); ; timer.schedule(timerTask, 0, 500); ); buttonPanel.add(jLabel); buttonPanel.add(jButton); add(buttonPanel); catch (FileNotFoundException e) System.out.println("学生信息文件找不到"); e.printStackTrace(); catch (IOException e) System.out.println("学生信息文件读取错误"); e.printStackTrace();
运行结果:
示例代码(学长提供):
package demo; import java.util.*; import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.io.File; import java.io.FileNotFoundException; import javax.swing.event.*; public class NameFrame extends JFrame implements ActionListener private JLabel jla; private JLabel jlb; private JButton jba; private static boolean flag = true; public NameFrame() this.setLayout(null); jla = new JLabel("姓名"); jlb = new JLabel("准备中"); jba = new JButton("开始"); this.add(jla); this.add(jlb); jla.setFont(new Font("Courier",Font.PLAIN,22)); jla.setHorizontalAlignment(JLabel.CENTER); jla.setVerticalAlignment(JLabel.CENTER); jla.setBounds(20,100,180,30); jlb.setOpaque(true); jlb.setBackground(Color.cyan); jlb.setFont(new Font("Courier",Font.PLAIN,22)); jlb.setHorizontalAlignment(JLabel.CENTER); jlb.setVerticalAlignment(JLabel.CENTER); jlb.setBounds(150,100,120,30); this.add(jba); jba.setBounds(150,150,80,26); jba.addActionListener(this); this.setTitle("点名器"); this.setBounds(400,400,400,300); this.setVisible(true); this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); public void actionPerformed(ActionEvent e) int i=0; String names[]=new String[50]; try Scanner in=new Scanner(new File("C:\\Users\\ASUS\\Desktop\\studentnamelist.txt")); while(in.hasNextLine()) names[i]=in.nextLine(); i++; catch (FileNotFoundException e1) // TODO Auto-generated catch block e1.printStackTrace(); if(jba.getText()=="开始") jlb.setBackground(Color.MAGENTA); flag = true; new Thread() public void run() while(NameFrame.flag) Random r = new Random(); int i= r.nextInt(47); jlb.setText(names[i]); .start(); jba.setText("停止"); jba.setBackground(Color.YELLOW); else if(jba.getText()=="停止") flag = false; jba.setText("开始"); jba.setBackground(Color.WHITE); jlb.setBackground(Color.gray); public static void main(String arguments []) new NameFrame();
由于本人未学习有关JAVA多线程的知识,无法实现线程的停止。
在查阅资料的过程中,本链接中的随机点名方法不太了解:
https://blog.csdn.net/qq_39694972/article/details/83243673
此部分:
运行结果:
学习总结:
11.1 事件处理基础
11.2 动作
11.3 鼠标事件
11.4 AWT事件继承层次
? 事件源(event source):能够产生事件的对象都可
以成为事件源,如文本框、按钮等。一个事件源是一个能够注册监听器并向监听器发送事件对象的对象。
? 事件监听器(event listener):事件监听器对象接收事件源发送的通告(事件对象),并对发生的事件作出响应。一个监听器对象就是一个实现了专门监听器接口的类实例,该类必须实现接口中的方法,这些方法当事件发生时,被自动执行。
? 事件对象(event object):Java将事件的相关信息封装在一个事件对象中,所有的事件对象都最终派生于java.util.EventObject类。不同的事件源可以产生不同类别的事件。
AWT事件处理机制的概要:
? 监听器对象:是一个实现了特定监听器接口(listener interface)的类实例。
? 事件源:是一个能够注册监听器对象并发送事件对象的对象。
? 当事件发生时,事件源将事件对象自动传递给所有注册的监听器。
? 监听器对象利用事件对象中的信息决定如何对事件做出响应。
GUI设计中,程序员需要对组件的某种事件进行响应和处理时,必须完成两个步骤:
1) 定义实现某事件监听器接口的事件监听器类,并具体化接口中声明的事件处理抽象方法。
2) 为组件注册实现了规定接口的事件监听器对象;
动作事件(ActionEvent):当特定组件动作(点击按钮)发生时,该组件生成此动作事件。
? 该 事 件 被 传 递 给 组 件 注 册 的 每 一 个ActionListener 对 象 , 并 调 用 监 听 器 对 象 的actionPerformed方法以接收这类事件对象。
? 能够触发动作事件的动作,主要包括:
(1) 点击按钮
(2) 双击一个列表中的选项;
(3) 选择菜单项;
监听器类必须实现与事件源相对应的接口,即必须提供接口中方法的实现。
学习感受:
这个周的结对编程练习,由于未学习JAVA多线程的知识,无法完全实现编程题的内容(随机点名器不能停止),深感自己知识的不够。在我查阅资料的过程中,有些看不懂中断线程的两种方法:stop()和interrupt()方法。
王颖奇20171010129《面向对象程序设计(java)》第十四周学习总结(代码片段)
实验十四 Swing图形界面组件理论知识知识点:1.Swing和MVC设计模式2.布局管理器3.文本输入4.选择组件5.菜单6.对话框实验时间 2018-11-291、实验目的与要求(1) 掌握GUI布局管理器用法;(2) 掌握各类Java Swing组件用... 查看详情
王颖奇20171010129《面向对象程序设计(java)》第十二周学习总结(代码片段)
实验十二 图形程序设计理论:10.1AWT与Swing简介10.2框架的创建10.3图形程序设计10.4显示图像(具体学习总结在最后)实验:实验时间 2018-11-141、实验目的与要求(1) 掌握Java GUI中框架创建及属性设置中常用类的API... 查看详情
王颖奇20171010129《面向对象程序设计(java)》第十五周学习总结(代码片段)
实验十五 GUI编程练习与应用程序部署实验时间2018-12-6学习总结:理论部分:?JAR文件?应用程序首选项存储?JavaWebStartJAR文件:1.Java程序的打包:程序编译完成后,程序员将.class文件压缩打包为.jar文件后,GUI界面程序就可以直... 查看详情
王颖奇201771010129《面向对象程序设计(java)》第七章学习总结(代码片段)
实验七继承附加实验实验时间2018-10-111、实验目的与要求(1)进一步理解4个成员访问权限修饰符的用途;A.仅对本类可见-privateB.对所有类可见-publicC.对本包和所有子类可见-protectedD.对本包可见-默认,,不需要修饰符(2)掌握Obj... 查看详情
201771010129王颖奇《面向对象程序设计java》第十八周实验总结(代码片段)
...)综合掌握java基本程序结构;(2) 综合掌握java面向对象程序设计特点;(3)综合掌握javaGUI 程序设计结构;(4)综合掌握java多线程编程模型;(5)综合编程练习。2、实验内容和步骤任务1:填写课程课后调查问卷,网址:https://www... 查看详情
《面向对象程序设计(java)》第二周学习总结
《面向对象程序设计(java)》第二周学习总结王颖奇201771010129第一部分:实验目的与要求①理论部分目的与要求(1)3.1基本知识(2)3.2数据类型(3)3.3变量(4)3.4运算符(5)3.5类型转换(6)3.6字符类型(7)3.7输入输出(8)... 查看详情
08-面向对象----j
一面向对象的程序设计的由来请参考:http://www.cnblogs.com/linhaifeng/articles/6428835.html二什么是面向对象的程序设计及为什么要有它面向过程的程序设计的核心是过程,过程即解决问题的步骤,面向过程的设计就好比精心设计好一条... 查看详情
2020面向对象设计与构造第三单元博客总结(代码片段)
面向对象设计与构造第三单元总结一、JML规格化设计JML,全称TheJavaModelingLanguage,是用于对Java程序进行规格化描述的注释性质语言。笔者在本文总结了常见的JML语法描述。1.注释结构在注释行或注释块中,以@开头的行被认作JML注... 查看详情
面向对象
老王和隔壁的美女猜数字,一共有四次机会,猜到了就有特殊奖励publicclasstest{publicstaticvoidmain(String[]args){inti=(int)(Math.random()*10);Scannerinput=newScanner(System.in);for(intj=0;j<4;j++){System.out.println("老王第"+(j+1)+"次 查看详情
201771010126王燕《面向对象程序设计(java)》第二周学习总结
201771010126王燕《面向对象程序设计(java)》第二周学习总结一.理论知识学习部分3.1j简单的java应用程序标识符由字母、下划线、美元符号和数字组成,且第一个符号不能为数字。标识符可用作:类名、变量名、方法名、数组名... 查看详情
201823072019-2020-1《数据结构与面向对象程序设计》实验1报告
课程:《程序设计与数据结构》班级:1823姓名:王美皓学号:20182322实验教师:王美皓实验日期:2019年9月9日必修/选修:必修1.实验内容基于命令行和IDE(IntelljIDEA简易教程](http://www.cnblogs.com/rocedu/p/4421202.html)进行简单的Java程... 查看详情
杨其菊201771010134《面向对象程序设计(java)》第三周学习总结(代码片段)
《面向对象程序设计(Java)》第三周学习总结第一部分:理论知识 这周课程没有新进度,由于感觉对基础语法的不熟悉,复习了一遍前三章的细碎知识,学到一些之前不知道的原理: 1.计算机高级语言按程序的... 查看详情
c++面向对象的主要体现是啥?
...得对我有用的话,我会再追加分。)C++面向对象是表现在程序设计的过程上,它是突破了C的结构化设计而出现的完全以实际问题为入手点的。C++的面向对象3个特性:1.封装。2.继承。3.多态。尤其重要的是,它采用类的设计,杜... 查看详情
徐思201771010132《面向对象程序设计(java)》第十二周学习总结(代码片段)
一、理论知识部分Java的抽象窗口工具箱(AbstractWindowToolkit,AWT)包含在java.awt包中,它提供了许多用来设计GUI的组件类和容器类。大部分AWT组件都有其Swing的等价组件,Swing组件的名字一般是在AWT组件名前面添加一个字母“J”。通... 查看详情
《微风吹过的街道》beta冲刺scrummeeting1
第1天日期:2020/6/26今日完成任务情况成员完成的任务王颖奇燃尽图及其任务安排杨野软件系统安装配置过程汪慧和编写测试文档李婷华编写测试文档成员贡献时间成员贡献时间王颖奇2汪慧和2杨野2李婷华2明天任务安排进行用户... 查看详情
201771010110孔维滢《面向对象程序设计(java)》第十二周学习总结
理论知识部分1.Java的抽象窗口工具箱(AbstractWindowToolkit,AWT)包含在java.awt包中,它提供了许多用来设计GUI的组件类和容器类。2.Swing用户界面库是非基于对等体的GUI工具箱。Swing类库被放在javax.swing包里。3.大部分AWT组件都有其Swing... 查看详情
马凯军201771010116《面向对象与程序设计java》第十二周学习总结(代码片段)
一、理论与知识学习部分Java的抽象窗口工具箱(AbstractWindowToolkit,AWT)包含在java.awt包中,它提供了许多用来设计GUI的组件类和容器类。大部分AWT组件都有其Swing的等价组件,Swing组件的名字一般是在AWT组件名前面添加一个字母“J... 查看详情
201771010134杨其菊《面向对象程序设计java》第十二周学习总结(代码片段)
...bsp; 内容概要: AWT与Swing简介;框架的创建;图形程序设计; 显示图像;1.AWT组件:2.Swing组件层次关系3.AWT与Swing的关系:大部分AWT组件都有其Swing的等价组件; Swing组件的名字一般是在AWT组件名前面添加一个字母“J 查看详情