Java Swing Graphics Graphics2D的一般用法
Java Swing Graphics Graphics2D的一般用法:
贝塞尔曲线参考:http://www.zhangxinxu.com/wordpress/2014/06/deep-understand-svg-path-bezier-curves-command/
贝塞尔曲线参考2:http://blog.chinaunix.net/uid-20622737-id-3161025.html
- package com.srie.test;
- import java.awt.BasicStroke;
- import java.awt.BorderLayout;
- import java.awt.Color;
- import java.awt.Dimension;
- import java.awt.EventQueue;
- import java.awt.Font;
- import java.awt.Graphics;
- import java.awt.Graphics2D;
- import java.awt.Shape;
- import java.awt.Stroke;
- import java.awt.geom.Arc2D;
- import java.awt.geom.CubicCurve2D;
- import java.awt.geom.Ellipse2D;
- import java.awt.geom.Line2D;
- import java.awt.geom.QuadCurve2D;
- import java.awt.geom.Rectangle2D;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JPanel;
- import javax.swing.JScrollPane;
- import javax.swing.border.EmptyBorder;
- public class JFrame001 extends JFrame {
- private static final long serialVersionUID = -8298152118685661613L;
- private JPanel contentPane;
- public static void main(String[] args) {
- EventQueue.invokeLater(new Runnable() {
- public void run() {
- try {
- JFrame001 frame = new JFrame001();
- frame.setVisible(true);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- });
- }
- /**
- * Create the frame.
- */
- public JFrame001() {
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- setBounds(100, 100, 850, 600);
- contentPane = new JPanel();
- contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
- contentPane.setLayout(new BorderLayout(0, 0));
- setContentPane(contentPane);
- JScrollPane scrollPane = new JScrollPane();
- contentPane.add(scrollPane, BorderLayout.CENTER);
- JPanel panel = new JPanel() {
- private static final long serialVersionUID = 1L;
- @Override public void paint(Graphics g) {
- super.paint(g);
- // g绘制圆弧
- g.drawArc(10, 10, 100, 50, 270, 200);
- // g绘制线段
- g.drawLine(10, 10, 50, 50);
- // g绘制圆形
- g.drawOval(10, 80, 50, 30);
- // g绘制矩形
- g.setColor(Color.RED);
- g.drawRect(80, 80, 100, 50);
- // g绘制字符串
- g.drawString("hello", 190, 80);
- Graphics2D g2 = (Graphics2D) g;
- // g2绘制Ellipse2D
- Shape s01 = new Ellipse2D.Float(50, 110, 20, 20);
- g2.draw(s01);
- // g2绘制Line2D
- Shape s02 = new Line2D.Float(10, 150, 50, 150);
- g2.setColor(Color.BLACK);
- Stroke stroke = new BasicStroke(5);
- g2.setStroke(stroke);
- g2.draw(s02);
- // g2绘制Line2D, 使用BasicStroke
- Shape s03 = new Line2D.Float(10, 180, 150, 180);
- g2.setColor(Color.BLACK);
- Stroke stroke02 = new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 10.0f, new float[] { 20, 5 }, 10);
- g2.setStroke(stroke02);
- g2.draw(s03);
- // g2绘制Arc2D
- Stroke stroke03 = new BasicStroke(1);
- g2.setStroke(stroke03);
- Shape s04 = new Arc2D.Float(10, 200, 40, 40, 0, 90, Arc2D.OPEN);
- g2.draw(s04);
- s04 = new Arc2D.Float(60, 200, 40, 40, -30, 90, Arc2D.CHORD);
- g2.draw(s04);
- s04 = new Arc2D.Float(110, 200, 40, 40, 0, 90, Arc2D.PIE);
- g2.draw(s04);
- // g2不能绘制Point2D
- // new Point2D.Float(10,210);
- // g2绘制Rectangle2D
- Shape s05 = new Rectangle2D.Float(10, 250, 130, 30);
- g2.draw(s05);
- // g2绘制CubicCurve2D
- Shape s06 = new CubicCurve2D.Float(10, 310, 35, 280, 85, 340, 100, 310);
- g2.draw(s06);
- s06 = new Line2D.Float(10, 310, 35, 280);
- g2.draw(s06);
- s06 = new Line2D.Float(35, 280, 85, 340);
- g2.draw(s06);
- s06 = new Line2D.Float(85, 340, 100, 310);
- g2.draw(s06);
- // g2绘制QuadCurve2D
- Shape s07 = new QuadCurve2D.Float(10, 350, 55, 370, 100, 350);
- g2.draw(s07);
- s07 = new Line2D.Float(10, 350, 55, 370);
- g2.draw(s07);
- s07 = new Line2D.Float(55, 370, 100, 350);
- g2.draw(s07);
- // 设置Font, drawString;
- Font font = new Font("黑体", Font.BOLD, 16);
- g2.setFont(font);
- g2.drawString("中文字符串", 10, 390);
- }
- };
- panel.setPreferredSize(new Dimension(2000, 1000));
- scrollPane.setViewportView(panel);
- JPanel panelColumn = new JPanel();
- scrollPane.setColumnHeaderView(panelColumn);
- JLabel lblNewLabel = new JLabel("New label");
- panelColumn.add(lblNewLabel);;
- JPanel panelRow = new JPanel();
- scrollPane.setRowHeaderView(panelRow);
- JLabel lblNewLabel_1 = new JLabel("New label");
- panelRow.add(lblNewLabel_1);
- }
- }
Java Swing Graphics Graphics2D的一般用法的更多相关文章
- <JAVA图像学习笔记>关于Graphics/Graphics2D以及简单的几何图像制作(一个简单钟表的实现)
题外话:正好赶上OperatingSystem的作业要做一个模拟线程/进程调度的问题,决定用JAVA实现才发现这些内容和之前学过的GUI制作是两码事儿- -b 通过学习java.swing库的Acti ...
- learning java swing 基本组件用法
import javax.swing.*; import java.awt.*; import java.awt.event.ActionListener; import java.awt.event ...
- Java Swing 日历 控件
这是我改写的网上的DateChooser代码后的作品,使用效果如图所示.用法参考备注,以及Main函数中用法. /** * * Copyright: Ares. * All Rights Reserv ...
- Java Swing jpanel paint方法执行两次的问题
Java Swing jpanel paint方法执行两次的问题: 在其他环境下执行了两次,自己测试怎么都是执行了一次,记录一下这个问题:需要后继工作: 可能是进行各种参数设置的时候导致了paint方 ...
- java Swing 图片缓冲机制
java Swing 图片缓冲机制: 参考:http://jorneyr.iteye.com/blog/868858#comments package util; import java.awt.ge ...
- java swing画图片爱心
第一次用swing做一个可视化程序,写第一篇随笔,有写的不好的地方请多多见谅.上个星期三在网上看到一个画爱心的软件,就想着自己用java也实现一个程序,画爱心用到的数学函数知识在网上百度的,不是本人原 ...
- Java Swing 创建转圈的进度提示框
Java Swing 创建转圈的进度提示框 摘自 https://blog.csdn.net/nihaoqiulinhe/article/details/52439486 置顶2016年09月05日 ...
- Java Swing interview
http://www.careerride.com/Swing-AWT-Interview-Questions.aspx Swing interview questions and answers ...
- java swing 双人五子棋源代码
import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Toolkit; impo ...
随机推荐
- HDU 1114 Piggy-Bank(判断是否恰好装满的背包)
其实这道题在寒假自学训练赛的时候就做过,不过感觉现在的理解跟当时真的不一样,大一半年过去了,变了这么多,我们都在进步,一回头便走出了这么远... 好了,题目很简单,一个背包,装不满做一个标记就行了 # ...
- document.createElement方法的使用
我们在使用createElemen方法t创建一个元素节点的时候,似乎在IE下面怎么写都可以,但切换到FF等其它浏览器却总是会报错. 比如我们要创建一个input元素,那么在IE下,我们可以有多种写法: ...
- 【HighCharts系列教程】八、Html标签属性——Labels
一.labels属性说明 Labels属性允许在HighCharts图表的任意位置添加任意的html代码.可以实现许多自定义内容. 二.labels属性详解 参数 子参数 说明 默认值 items — ...
- 未在本地计算机上注册“Microsoft.Ace.OleDB.12.0”
这是异常 我的电脑室x86的所以选择x86.
- Email:2017
Hi, 2017,我对自己有一个小小的期望:写写文字,安安心. Enjoy a simple life. 如我所愿吧! 明年再来问候你.
- php中__clone() shallow copy 只是浅复制
什么是浅复制呢? 简单一点,就是说复制一个对象的时候,如果对象$Obj的一个属性的类型是引用类型的,比如 $person这个属性,指向的是一个 叫做 $objPerson的一个引用, 那么复制$Obj ...
- 170113、CentOs6.4中安装和配置vsftp简明教程
一.vsftp安装篇 代码如下: # 安装vsftpdyum -y install vsftpd# 启动service vsftpd start# 开启启动chkconfig vsftpd on 二. ...
- Bitmap 格式
源:Bitmap 格式 参考:bitmap文件格式 Bitmap是Windows操作系统中的标准图像文件格式,可以分成两类:设备相关位图(DDB)和设备无关位图(DIB),DDB已经基本停用. Bit ...
- 在IOS应用中从竖屏模式强制转换为横屏模式
http://www.cnblogs.com/mrhgw/archive/2012/07/18/2597218.html 在 iPhone 应用里,有时我们想强行把显示模式从纵屏改为横屏(反之亦然), ...
- IOS开发之IOS8.0最新UIAlertController
最近苹果更新的IOS8 对以前进行了很大的修改, 更新的API也让人捉急,据说iOS 8的新特性之一就是让接口更有适应性.更灵活,因此许多视图控制器的实现方式发生了巨大的变化.比如全新的UIPrese ...