关键词:
张季跃 201771010139《面向对象程序设计(java)》第十二周学习总结
第二部分:实验部分
1、实验目的与要求
(1) 掌握Java GUI中框架创建及属性设置中常用类的API;
(2) 掌握Java GUI中2D图形绘制常用类的API;
(3) 了解Java GUI中2D图形中字体与颜色的设置方法;
(4) 了解Java GUI中2D图像的载入方法。
2、实验内容和步骤
实验1: 导入第9章示例程序,测试程序并进行代码注释。
2、实验内容和步骤
实验1: 导入第10章示例程序,测试程序并进行代码注释。
测试程序1:
l 运行下列程序,观察程序运行结果。
import javax.swing.*; public class SimpleFrameTest public static void main(String[] args)
JFrame frame = new JFrame(); frame.setBounds(0, 0,300, 200); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true);
|
l 在elipse IDE中调试运行教材407页程序10-1,结合程序运行结果理解程序;与上面程序对比,思考异同;
l 掌握空框架创建方法;
l 了解主线程与事件分派线程概念;
l 掌握GUI顶层窗口创建技术。
测试程序1:
package 测试程序1;
import javax.swing.*;
public class SimpleFrameTest
public static void main(String[] args)
JFrame frame = new JFrame();
frame.setBounds(0, 0,300, 200);//确定窗口的位置以及大小
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//关闭方法默认
frame.setVisible(true); //窗口可见
测试结果:
测试程序2:
l 在elipse IDE中调试运行教材412页程序10-2,结合程序运行结果理解程序;
l 掌握确定框架常用属性的设置方法。
测试程序2:
package simpleFrame;
import java.awt.*;
import javax.swing.*;
/**
* @version 1.33 2015-05-12
* @author Cay Horstmann
*/
public class SimpleFrameTest
public static void main(String[] args)
EventQueue.invokeLater(() ->
SimpleFrame frame = new SimpleFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
);
class SimpleFrame extends JFrame
private static final int DEFAULT_WIDTH = 300;
private static final int DEFAULT_HEIGHT = 200;
public SimpleFrame()
setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
测试结果:
测试程序3:
l 在elipse IDE中调试运行教材418页程序10-3,结合运行结果理解程序;
l 掌握在框架中添加组件;
l 掌握自定义组件的用法。
测试程序3:
package notHelloWorld;
import javax.swing.*;
import java.awt.*;
/**
* @version 1.33 2015-05-12
* @author Cay Horstmann
*/
public class NotHelloWorld
public static void main(String[] args)
EventQueue.invokeLater(() ->
JFrame frame = new NotHelloWorldFrame();
frame.setTitle("NotHelloWorld");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
);
/**
* A frame that contains a message panel
*/
class NotHelloWorldFrame extends JFrame
public NotHelloWorldFrame()
add(new NotHelloWorldComponent());
pack();
/**
* A component that displays a message.
*/
class NotHelloWorldComponent extends JComponent
public static final int MESSAGE_X = 75;
public static final int MESSAGE_Y = 100;
private static final int DEFAULT_WIDTH = 300;
private static final int DEFAULT_HEIGHT = 200;
public void paintComponent(Graphics g)
g.drawString("Not a Hello, World program", MESSAGE_X, MESSAGE_Y);
public Dimension getPreferredSize() return new Dimension(DEFAULT_WIDTH, DEFAULT_HEIGHT);
测试结果:
测试程序4:
l 在elipse IDE中调试运行教材424 -425页程序10-4,结合程序运行结果理解程序;
l 掌握2D图形的绘制方法。
测试程序:
package draw;
import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
/**
* @version 1.33 2007-05-12
* @author Cay Horstmann
*/
public class DrawTest
public static void main(String[] args)
EventQueue.invokeLater(() ->
JFrame frame = new DrawFrame();
frame.setTitle("DrawTest");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
);
/**
* A frame that contains a panel with drawings
*/
class DrawFrame extends JFrame
public DrawFrame()
add(new DrawComponent());
pack();
/**
* A component that displays rectangles and ellipses.
*/
class DrawComponent extends JComponent
private static final int DEFAULT_WIDTH = 400;
private static final int DEFAULT_HEIGHT = 400;
public void paintComponent(Graphics g)
Graphics2D g2 = (Graphics2D) g;
// draw a rectangle
double leftX = 100;
double topY = 100;
double width = 200;
double height = 150;
Rectangle2D rect = new Rectangle2D.Double(leftX, topY, width, height);
g2.draw(rect);
// draw the enclosed ellipse
Ellipse2D ellipse = new Ellipse2D.Double();
ellipse.setFrame(rect);
g2.draw(ellipse);
// draw a diagonal line
g2.draw(new Line2D.Double(leftX, topY, leftX + width, topY + height));
// draw a circle with the same center
double centerX = rect.getCenterX();
double centerY = rect.getCenterY();
double radius = 150;
Ellipse2D circle = new Ellipse2D.Double();
circle.setFrameFromCenter(centerX, centerY, centerX + radius, centerY + radius);
g2.draw(circle);
public Dimension getPreferredSize() return new Dimension(DEFAULT_WIDTH, DEFAULT_HEIGHT);
测试结果:
测试程序5:
l 在elipse IDE中调试运行教材432页-433程序10-5,结合程序运行结果理解程序;
l 了解2D图形中字体的设置的方法;
测试程序5:
package font;
import java.awt.*;
import java.awt.font.*;
import java.awt.geom.*;
import javax.swing.*;
/**
* @version 1.34 2015-05-12
* @author Cay Horstmann
*/
public class FontTest
public static void main(String[] args)
EventQueue.invokeLater(() ->
JFrame frame = new FontFrame();
frame.setTitle("FontTest");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
);
/**
* A frame with a text message component
*/
class FontFrame extends JFrame
public FontFrame()
add(new FontComponent());
pack();
/**
* A component that shows a centered message in a box.
*/
class FontComponent extends JComponent
private static final int DEFAULT_WIDTH = 300;
private static final int DEFAULT_HEIGHT = 200;
public void paintComponent(Graphics g)
Graphics2D g2 = (Graphics2D) g;
String message = "Hello, World!";
Font f = new Font("Serif", Font.BOLD, 36);
g2.setFont(f);
// measure the size of the message
FontRenderContext context = g2.getFontRenderContext();
Rectangle2D bounds = f.getStringBounds(message, context);
// set (x,y) = top left corner of text
double x = (getWidth() - bounds.getWidth()) / 2;
double y = (getHeight() - bounds.getHeight()) / 2;
// add ascent to y to reach the baseline
double ascent = -bounds.getY();
double baseY = y + ascent;
// draw the message
g2.drawString(message, (int) x, (int) baseY);
g2.setPaint(Color.LIGHT_GRAY);
// draw the baseline
g2.draw(new Line2D.Double(x, baseY, x + bounds.getWidth(), baseY));
// draw the enclosing rectangle
Rectangle2D rect = new Rectangle2D.Double(x, y, bounds.getWidth(), bounds.getHeight());
g2.draw(rect);
public Dimension getPreferredSize() return new Dimension(DEFAULT_WIDTH, DEFAULT_HEIGHT);
测试结果:
测试程序6:
l 在elipse IDE中调试运行教材436页-437程序10-6,结合程序运行结果理解程序;
l 了解2D图形图像的显示方法。
测试程序SetDemo:
import java.util.*;
public class SetDemo
public static void main(String[] argv)
HashSet h = new HashSet(); //也可以 Set h=new HashSet()
h.add("One");
h.add("Two");
h.add("One"); // DUPLICATE
h.add("Three");
Iterator it = h.iterator();
while (it.hasNext())
System.out.println(it.next());
测试结果:
第三部分:实验总结:
在这一周的学习中我第一次接触了怎样用Java编程来设计一个自己的窗口,虽然设计的窗口十分简洁,只能设计大小和插入基本文字图案,但也算在Java设计窗口方面开了一个好头。另外,在本周的测试中,我发现我对前几周学习的知识有所遗忘,好几道题目都是查找资料才做出来的,今后要加强对以前学习知识的巩固。
张季跃201771010139《面向对象程序设计(java)》第十三周学习总结(代码片段)
张季跃201771010139《面向对象程序设计(java)》第十三周学习总结实验部分:1、实验目的与要求(1)掌握事件处理的基本原理,理解其用途;(2)掌握AWT事件模型的工作机制;(3) 掌握事件处理的基本编程模型;(4)了解GUI界面组件... 查看详情
张季跃201771010139《面向对象程序设计(java)》第十二周学习总结
张季跃201771010139《面向对象程序设计(java)》第十二周学习总结第二部分:实验部分1、实验目的与要求(1)掌握JavaGUI中框架创建及属性设置中常用类的API;(2)掌握JavaGUI中2D图形绘制常用类的API;(3)了解JavaGUI中2D图形中字体与颜色... 查看详情
张季跃201771010139《面向对象程序设计(java)》第三周学习总结(改)
张季跃201771010139《面向对象程序设计(java)》第三周学习总结第一部分:理论知识学习部分 3.6字符串 u(1)Java字符串是Unicode字符的序列,它是组织字符的基本数据结构,用法类似于字符数组。u(2)... 查看详情
张季跃201771010139《面向对象程序设计(java)》第七周学习总结
张季跃201771010139《面向对象程序设计(java)》第七周学习总结第一部分:理论知识学习部分第五章 继承:继承:用已有类来构建新类的一种机制。当定义了一个新类继承了一个类时,这个新类就继承了这个类的方法和域,... 查看详情
张季跃 201771010139《面向对象程序设计(java)》第八周学习总结
张季跃 201771010139《面向对象程序设计(java)》第八周学习总结理论知识部分:6.1接口l(1)Java为了克服单继承的缺点,Java使用了接口,一个类可以实现一个或多个接口。l(2) 在Java程序设计语言中,接口不是类,而是对类的... 查看详情
张季跃201771010139《面向对象程序设计(java)》第一周学习总结
本人学号《面向对象程序设计(java)》第一周学习总结 第一部分:课程准备部分 填写课程学习平台注册账号, 平台名称注册账号博客园:www.cnblogs.comTonma程序设计评测:https://pintia.cn/[email protected]代码托管... 查看详情
张季跃201771010139《面向对象程序设计(java)》第十五周学习总结(代码片段)
张季跃201771010139《面向对象程序设计(java)》第十五周学习总结第一部分:理论知识学习部分第13章部署应用程序: JAR文件:Java程序的打包:程序编译完成后,程序员将.class文件压缩打包为.jar文件后,GUI界面程序就可以... 查看详情
张季跃201771010139《面向对象程序设计(java)》第十六周学习总结(代码片段)
张季跃201771010139《面向对象程序设计(java)》第十六周学习总结1、实验目的与要求(1)掌握线程概念;(2)掌握线程创建的两种技术;(3)理解和掌握线程的优先级属性及调度方法;(4)掌握线程同步的概念及实现技术;2、实验内容和... 查看详情
beta冲刺scrummeeting4
...完成任务情况。姓名任务张云飞编写压力测试,博客撰写张季跃编写压力测试,录制视频周强编写压力测试邹丰蔚编写压力测试 1.2成员贡献时间 成员时间张云飞2h张季跃4h周强4h邹丰蔚... 查看详情
冲刺博客
...成员任务张云飞对完成界面进行优化。周强数据库连接。张季跃程序安全性测试以及分析。邹丰蔚程序安全性测试以及分析。 遇到的问题: 我们团队在昨天的完成任务的基础上,进行了界面的优化... 查看详情
冲刺博客(6)
...的问题。成员任务张云飞 认养界面周强 商铺界面张季跃 商品界面邹丰蔚 商品界面 遇到的问题: 我们团队在昨天的完成任务的基础上,完成了农场的认养、商铺和商品部分。界面不... 查看详情
面向对象程序设计介绍以及面向对象的基本特征
面向对象的程序设计(ObjectOrientedProgramming,OOP)方法是目前比较流行的程序设计方法,和面向过程的程序设计比,它更符合人类的自然思维方式。在面向过程程序设计中,程序=数据+算法,数据和对数据的操作是分离的,如... 查看详情
《面向对象程序设计概述》牛咏梅
面向对象程序设计概述牛咏梅(南阳理工学院河南南阳473000)摘要:分析传统程序设计方法与面向对象程序设计方法之间的差别,重点分析了面向对象程序设计方法的特点,介绍了面向对象程序设计方法的步骤及其优点。关键词:面向对... 查看详情
java面向对象大致梳理
...概述:Java设计语言面向对象:Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的指引下,使用Java语言去设计、开发计算机程序。这里的对象泛指现实中一切事物,每种事物都... 查看详情
面向对象的程序设计
阅读目录一面向对象的程序设计的由来二什么是面向对象的程序设计及为什么要有它三类与对象四属性查找五绑定到对象的方法的特殊之处六对象之间的交互七练习八继承与派生九多态与多态性十封装十一绑定方法与非绑定方法... 查看详情
面向对象思想
...0年代,位于美国加州的Xerox研究中心推出smalltalk语言及其程序设计环境,使得面向对象程序设计方法得到比较完善的实现,掀起了面向对象研究的高潮。到80年代中后期,面向对象的软件设计和程序设计方法 查看详情
面向对象设计----软件设计师
上午12分下午两大答题30分面向对象的基本概念❤❤❤❤❤采用面向对象的软件开发,通常由面向对象分析,面向对象设计,面向对象实现1面向对象分析OOA:获取对应用问题的理解,主要任务是抽取和整理用户需求并建立问题域精确模... 查看详情
面向对象分析与设计面向对象设计包括哪些内容
一、总述面向对象分析的输入是用户的功能需求,输出是简单的、理性化的分析模型,此阶段的工作更多侧重于如何理解软件的功能需求;面向对象设计的输入是面向对象分析的结果,蔬菜水果最终的、细化后的设计模型,此阶... 查看详情