java scroll column2d_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图像学习笔记>关于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 ...

随机推荐

在cmd和terminal怎么粘贴?

在osx, linux的terminal 以及windows的 cmd实现粘贴是coder经常要做的事,鼠标右键,下拉菜单中单击粘贴paste.但是这显得笨拙,及其不快捷.但是正常使用的command ...

Spark源码学习1.2——TaskSchedulerImpl.scala

许久没有写博客了,没有太多时间,最近陆续将Spark源码的一些阅读笔记传上,接下来要修改Spark源码了. 这个类继承于TaskScheduler类,重载了TaskScheduler中的大部分方法,是 ...

angularjs(一)基础概念

一.前言 前端技术的发展是如此之快,各种优秀技术.优秀框架的出现简直让人目不暇接,作为一名业界新秀,紧跟时代潮流,学习掌握新知识自然是不敢怠慢.当听到AngularJs这个名字并知道是google在维 ...

python 类修饰器

1. 修改类函数. 场景: 如果要给一个类的所有方法加上计时,并打印出来.demo如下: # -*- coding:utf-8 -*- import time def time_it(fn): &qu ...

CentOS 7部署flume

CentOS 7部署flume 准备工作: 安装java并设置java环境变量,在`/etc/profile`中加入 export JAVA_HOME=/usr/java/jdk1.8.0_65 ex ...

HDU 5901 Count primes (1e11内的素数个数) -2016 ICPC沈阳赛区网络赛

题目链接 题意:求[1,n]有多少个素数,1<=n<=10^11.时限为6000ms. 官方题解:一个模板题, 具体方法参考wiki或者Four Divisors. 题解:给出两种代码. ...

java 15- 5 List集合

需求 1:List集合存储字符串并遍历.(步骤跟Collection集合一样,只是最初创建集合对象中的集合类改变了,Collection变成List) List集合的特点: 有序(存储和取出的元素一致 ...

C&num; Environment类&lowbar;获取程序所在机器信息

一.属性 CommandLine  获取该进程的命令行.CurrentDirectory 获取或设置当前工作目录的完全限定路径.ExitCode 获取或设置进程的退出代码.HasShutdownSta ...

为什么delphi控件前面都有t

控件的类名都有一个T字, 它是Type的第一个字母. 比如按钮就是TButton. 但在Delphi的控件面板上的并不带T字, 比如就是Button. 如果你把它放在窗体上, 默认名字则成为Butto ...

广义后缀树(GST)算法的简介

导言 最近软件安全课上,讲病毒特征码的提取时,老师讲了一下GST算法.这里就做个小总结. 简介 基本信息  广义后缀树的英文为Generalized Suffix Tree,简称GST. 算法目的   ...

在使用Python来安装geopandas包时,由于geopandas依赖于几个其他的Python库(如GDAL, Fiona, Pyproj, Shapely等),因此安装过程可能需要一些额外的步骤。以下是一个基本的安装指南,适用于大多数用户: 使用pip安装 确保Python和pip已安装: 首先,确保你的计算机上已安装了Python和pip。pip是Python的包管理工具,用于安装和管理Python包。 安装依赖库: 由于geopandas依赖于GDAL, Fiona, Pyproj, Shapely等库,你可能需要先安装这些库。通常,你可以通过pip直接安装这些库,但有时候可能需要从其他源下载预编译的二进制包(wheel文件),特别是GDAL和Fiona,因为它们可能包含一些系统级的依赖。 bash pip install GDAL Fiona Pyproj Shapely 注意:在某些系统上,直接使用pip安装GDAL和Fiona可能会遇到问题,因为它们需要编译一些C/C++代码。如果遇到问题,你可以考虑使用conda(一个Python包、依赖和环境管理器)来安装这些库,或者从Unofficial Windows Binaries for Python Extension Packages这样的网站下载预编译的wheel文件。 安装geopandas: 在安装了所有依赖库之后,你可以使用pip来安装geopandas。 bash pip install geopandas 使用conda安装 如果你正在使用conda作为你的Python包管理器,那么安装geopandas和它的依赖可能会更简单一些。 创建一个新的conda环境(可选,但推荐): bash conda create -n geoenv python=3.x anaconda conda activate geoenv 其中3.x是你希望使用的Python版本。 安装geopandas: 使用conda-forge频道来安装geopandas,因为它提供了许多地理空间相关的包。 bash conda install -c conda-forge geopandas 这条命令会自动安装geopandas及其所有依赖。 注意事项 如果你在安装过程中遇到任何问题,比如编译错误或依赖问题,请检查你的Python版本和pip/conda的版本是否是最新的,或者尝试在不同的环境中安装。 某些库(如GDAL)可能需要额外的系统级依赖,如地理空间库(如PROJ和GEOS)。这些依赖可能需要单独安装,具体取决于你的操作系统。 如果你在Windows上遇到问题,并且pip安装失败,尝试从Unofficial Windows Binaries for Python Extension Packages网站下载相应的wheel文件,并使用pip进行安装。 脚本示例 虽然你的问题主要是关于如何安装geopandas,但如果你想要一个Python脚本来重命名文件夹下的文件,在原始名字前面加上字符串"geopandas",以下是一个简单的示例: python import os # 指定文件夹路径 folder_path = 'path/to/your/folder' # 遍历文件夹中的文件 for filename in os.listdir(folder_path): # 构造原始文件路径 old_file_path = os.path.join(folder_path, filename) # 构造新文件名 new_filename = 'geopandas_' + filename # 构造新文件路径 new_file_path = os.path.join(folder_path, new_filename) # 重命名文件 os.rename(old_file_path, new_file_path) print(f'Renamed "{filename}" to "{new_filename}"') 请确保将'path/to/your/folder'替换为你想要重命名文件的实际文件夹路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值