java awt区域_java的awt包中有没有表示区域的类或者方法,可以传递一个Rectangle
展开全部
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
final class RectPaintDemo extends JFrame {
final static private Dimension SIZE = new Dimension(800, 600);
public String getTitle() {return "RectPaintDemo";}
public Dimension getPreferredSize() {return SIZE;}
public Dimension getMinimumSize() {return SIZE;}
public Dimension getMaximumSize() {return SIZE;}
public Dimension getSize() {return SIZE;}
private Canvas canvas;
private Brush brush;
RectPaintDemo() throws HeadlessException {
init();
attachListeners();
doLay();
setVisible(true);
}
private void init() {
brush = new ShapeBrush();
canvas = new Canvas(brush);
}
private void attachListeners() {
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(1);
}
});
}
private void doLay() {
Container container = getContentPane();
container.add(canvas, BorderLayout.CENTER);
pack();
}
public static void main(String... args) {
System.setProperty("swing.defaultlaf", "com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
SwingUtilities.invokeLater(RectPaintDemo::new);
}
private interface Brush extends Observer {
/**
* do paint action
* @param g the graphics context in you application
*/
void paint(Graphics g);
/**
* The component that this brush hold
* @return component instance
*/
Component getOwner();
void setOwner(Component owner);
}
private static final class ShapeBrush implements Brush {
private Component owner;
private Rectangle contentObj = new Rectangle(20,20,40,30);
public Component getOwner() {
return owner;
}
public void setOwner(Component owner) {
this.owner = owner;
}
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D)g.create();
g2.fillRect(0,0,getOwner().getWidth(),getOwner().getHeight());
g2.translate(50, 50);
g2.rotate(Math.PI / 4);
g2.setColor(Color.YELLOW);
g2.draw(contentObj);
g2.dispose();
}
public void update(Observable o, Object arg) {
if (owner !62616964757a686964616fe78988e69d8331333337383964= null) owner.repaint();
}
}
/**
* you canvas
*/
private class Canvas extends JComponent {
private Brush brush;
private Canvas(Brush brush) {
super();
this.brush = brush;
brush.setOwner(this);
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
if (brush == null) return;
brush.paint(g);
}
}
}
java awt区域_java的awt包中有没有表示区域的类或者方法,可以传递一个Rectangle相关推荐
- java 文件路径表达式_Java基础(二十二) Lambda表达式和File类
函数式编程思想 强调的是做什么,而不是以什么样的方式来做,它忽略了面向对象的复杂语法,只要能够获取到结果,谁去做的,怎么做的,都不重要,重要的是结果,不重视过程. 冗余的Runnable代码 传统的写 ...
- java swt 双屏_Java中AWT、Swing与SWT三大GUI技术的原理与效率差异
看了一下对Java GUI讨论的帖子,所以写了一篇文章来阐述一下各种GUI技术的优劣. Java世界中,目前最知名的三大GUI库分别是: 1.AWT(Abstract Window Toolkit)抽 ...
- java 单开程序_java生成jar包并且单进程运行的实例
java文件打包jar运行 有效步骤: 1.cmd 到当前目录(默认包主类所在目录为例) set classpath = 默认包主类所在目录 2.javac 主类名.java 3.java 主类名 4 ...
- java 静态方法 实例化_Java系列之:看似简单的问题 静态方法和实例化方法的区别...
今天看书时一直没真正弄明白静态方法和实例方法的区别,就在网上搜索,找到一篇很好的文章,和大家分享一下: 这是一个经常被时时提出来的问题,很多时候我们以为理解了.懂了,但深究一下,我们却发现并不懂. 方 ...
- java 查找注解_Java利用反射如何查找使用指定注解的类详解
前言 最近有些空,想自己写个跟spring里的注解一样的注解来用,然后希望能找到使用了自己写了注解的类,下面来介绍一下实现方法 声明,下面代码是没看过spring源码写的,基本上都是网上找的博客,整理 ...
- java面向对象高级特性 ---接口案例(学校中有教师和学生两类人,而在职研究生既是教师又是学生)
学校中有教师和学生两类人,而在职研究生既是教师又是学生. 1)设计两个接口studentinterface和teacherinterface. 2)studentinterface接口 ...
- java八进制写法_Java中8进制和16进制的表示方法
由于数据在计算机中的表示,最终以二进制的形式存在,所以有时候使用二进制,可以更直观地解决问题. 但,二进制数太长了.比如int 类型占用4个字节,32位.比如100,用int类型的二进制数表达将是: ...
- docker java 中文乱码_java使用awt包在生产环境docker部署时出现中文乱码的处理
描述: 有一个业务是需要后台生成图片,后台使用了Graphics2D类.在docker部署时,图片上的中文变成方块. 解决方案: 百度了一下,发现是生产上的docker容器下没有中文字体,需要在容器里 ...
- java网络 可视化_Java可视化AWT
AWT 总体上Swing组件替代了绝大部分AWT组件,对AWT图形用户界面编程有极好的补充和加强. package ch11; import java.awt.*; /** * Created by ...
最新文章
- 基于UDP的DDos反射放大攻击
- python绘图实例-Python——matplotlib基础绘图函数示例
- hdu2435最大流最小割
- 程序员的职业素养-读书笔记
- gitlab备份与还原:配置文件解读、定时备份、云备份
- 分类素材(part6)--大话Python机器学习(下)
- STM32L之可编程电压检测(PVD)
- 小a与星际探索---DP
- 视频码率[百科词条]
- C++实现获取汉字拼音首字母
- 机器学习的偏差-方差分解
- linux下apache安装ssl,linux下apache安装ssl步骤
- 367个公益宣传PPT模板免费下载网站
- 口袋电子秤方案芯片CSU18P88
- 开放式蓝牙耳机排行,列举几款值得推荐的开放式蓝牙耳机
- 你想要的宏基因组-微生物组知识全在这(2020.5)
- Xcode 卡死 解决方法
- 【Python实战】推文助手好用吗?真的能赚钱吗?教您一招,有了这款微信自动发送消息小助手,文字自动跳出来~赚麻了(赶紧收藏)
- 安装卸载Oracle
- nginx中配置location的root(alias)访问同一个地址文件
热门文章
- .NET Core中的CSV解析库
- ASP.NET Core 2.0使用Autofac实现IOC依赖注入竟然能如此的优雅简便
- System.IO.Pipelines: .NET高性能IO
- 面试中get和post的区别
- [转]【高并发】高并发秒杀系统架构解密,不是所有的秒杀都是秒杀!
- 【北斗】北斗卫星导航系统(BDS)介绍
- 剑指offer之二叉树的下一个结点
- 剑指offer之C语言实现链表(两种方式)
- Android Studio之Instant Run requires ‘Tools | Android | Enable ADB integration‘ to be enabled解决办法
- linux之od命令总结