没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
24页
实验目的及要求 1) 掌握JFrame的基本用法 2) 掌握基本图形的绘制,可以使用不同颜色,字体,线条进行绘制 3) 掌握简单的事件处理机制 4) 掌握几种事件处理机制:鼠标事件、窗口事件 5) 掌握边缘布局管理器,流式布局管理器 6) 掌握几种基本的Swing组件 实验内容 1) 创建一个简单的JFrame,使用不同的颜色、线条绘制各种形状,使用不同的字体、颜色绘制字符串,使用最简单的监听器ActionListener对JButton的点击事件编程; 2)使用鼠标事件进行绘图; 3)使用边缘布局管理器和流式布局管理器和几种基本的Swing组件包括:JLabel,JTextField,JPassword,JButton,JCheckBox等,来设计一个登陆界面;
资源推荐
资源详情
资源评论
实验报告
一. 实验名称
图形用户界面
二. 实验目的及要求
1) 掌握 JFrame 的基本用法
2) 掌握基本图形的绘制,可以使用不同颜色,字体,线条进行绘制
3) 掌握简单的事件处理机制
4) 掌握几种事件处理机制:鼠标事件、窗口事件
5) 掌握边缘布局管理器,流式布局管理器
6) 掌握几种基本的 Swing 组件
三. 实验环境
IntelliJ IDEA Community Edition 2019.2.2
四. 实验内容
1) 创建一个简单的 JFrame,使用不同的颜色、线条绘制各种形状,使用不同
的字体、颜色绘制字符串,使用最简单的监听器 ActionListener 对 JButton 的
点击事件编程;
2)使用鼠标事件进行绘图;
3)使用边缘布局管理器和流式布局管理器和几种基本的 Swing 组件包括:
JLabel,JTextField,JPassword,JButton,JCheckBox 等,来设计一个登
陆界面;
五. 实验过程及实验结果
1、创建一个新工程 GUITest;
① 新建 SimpleFrame 类,继承 JFrame 类;
代码如下:
import javax.swing.*;
public class SimpleFrame extends JFrame {
public SimpleFrame() {
add(new DrawComponent());
pack();
}
}
② 新建 Main 类,显示 JFrame;
代码如下:
import javax.swing.JButton;
import javax.swing.JFrame;
public class Main {
public static void main(String[] args) {
SimpleFrame frame = new SimpleFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.setLocation(400,400);
frame.setTitle("Simple Frame");
}
}
③ 新建 DrawComponent 类,继承 JComponent 类(设置颜色:绿色-圆形;
红色-矩形;蓝色-椭圆;黄色-直线);
代码如下:
import javax.swing.*;
import java.awt.*;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Line2D;
import java.awt.geom.Rectangle2D;
public 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;
double leftX = 100;
double topY = 100;
double width = 200;
double height = 150;
Rectangle2D rect = new Rectangle2D.Double(leftX, topY, width,
height);
g2.draw(rect);
g2.setPaint (Color.BLUE); //
将画笔设置为蓝色
g2.draw (rect); //
使用蓝色绘制
g2.setStroke(new BasicStroke(3.0f)); //
设置线条宽度为
3
g2.draw(rect); //
使用线条绘制
// draw the enclosed ellipse
Ellipse2D ellipse = new Ellipse2D.Double();
ellipse.setFrame(rect);
g2.draw(ellipse);
g2.setPaint (Color.YELLOW); //
将画笔设置为黄色
g2.draw (rect); //
使用黄色绘制
g2.setStroke(new BasicStroke(3.0f)); //
设置线条宽度为
3
g2.draw(rect); //
使用线条绘制
// draw a diagonal line
g2.draw(new Line2D.Double(leftX, topY, leftX + width, topY +
height));
g2.setPaint (Color.GREEN); //
将画笔设置为绿色
g2.draw (rect); //
使用绿色绘制
g2.setStroke(new BasicStroke(3.0f)); //
设置线条宽度为
3
g2.draw(rect); //
使用线条绘制
// 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);
g2.setPaint (Color.RED); //
将画笔设置为红色
g2.draw (rect); //
使用红色绘制
g2.setStroke(new BasicStroke(3.0f)); //
设置线条宽度为
3
g2.draw(rect); //
使用线条绘制
}
public Dimension getPreferredSize() {
return new Dimension(DEFAULT_WIDTH, DEFAULT_HEIGHT); }
}
运行 Main 类,结果如图:
④ 将下面蓝色小球图片保存为文件 blue-ball.gif,然后复制到工程的根目录;
⑤ 新建 ImageTest 类(使蓝色小球铺满整个 JFrame);
代码如下:
import javax.swing.*;
import java.awt.*;
public class ImageTest
{
public static void main(String[] args)
{
EventQueue.invokeLater(() ->
{
JFrame frame = new ImageFrame();
frame.setTitle("ImageTest");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
});
}
}
/**
* A frame with an image component
*/
class ImageFrame extends JFrame
{
public ImageFrame()
{
add(new ImageComponent());
pack();
}
}
/*
* A component that displays a tiled image
*/
class ImageComponent extends JComponent
{
private static final int DEFAULT_WIDTH = 300;
private static final int DEFAULT_HEIGHT = 300;
private Image image;
public ImageComponent()
{
image = new ImageIcon("blue-ball.gif").getImage();
}
public void paintComponent(Graphics g)
{
Graphics2D g2 = (Graphics2D) g;
Stroke s = new BasicStroke(5,
BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER);
g2.setStroke(s);
if (image == null) return;
剩余23页未读,继续阅读
资源评论
小小代码
- 粉丝: 0
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功