java绘图drawString位置的确定】的更多相关文章

根据api,很容易知道使用方式如下: 指定字符串和坐标即可. 但是简单认为字符串的起始位置就是左上顶点就错了,这样画起来每次的位置都不对,字体的大小不同,位置偏差很大.仔细看api注释后发现,y坐标是字符串基线位置的坐标,也就是说字符串基线与画布y重合. 字体的高由个元素组成:ascentdescent drawString中用的y坐标是指baseline的y坐标,即字体所在矩形的左上角y坐标+ascent 改进后的示例代码: BufferedImage srcBi = xxx; int owi…
坐标体系介绍 下图说明了java坐标体系.坐标原点位于左上角,以像素为单位,像素是计算机屏幕上最小的显示单位.在java的坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素:第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素. 绘图还必须要搞清楚一个非常重要的概念,像素: 计算机在屏幕上显示的内容都是由屏幕上的每一个像素组成.例如,计算机显示器的分辨率是800*600,表示计算机屏幕上的每一行由800个点组成,共600行,整个计算机屏幕共有480 000个像素.现在…
1.绘图基本操作 请参考下面基础示例: int width = 200, height = 250; //创建图片对象 BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_4BYTE_ABGR); //基于图片对象打开绘图 Graphics2D graphics = image.createGraphics(); //绘图逻辑 START (基于业务逻辑进行绘图处理)…… //绘制圆形 graphic…
Java Web-servlet.HTTP in servlet和捎带的Java绘图学习 server applet:运行在服务器端的小程序 动态项目的动态内容的java类依赖于服务器才能运行,由tomcat执行,所以需要遵守一定的规则(接口)才能被Tomcat所识别,这个接口就是servlet. 快速入门 创建一个JavaEE项目 定义一个类,实现Servlet接口 实现接口中的方法 package com.jiading.web.servlet; import javax.servlet.*…
java 绘图 圆形.线条.矩形.填充 插入图片 文字 //绘图 import java.awt.*; import javax.swing.*; public class Index extends JFrame{ public static void main(String[] args) throws Exception{ //实例化当前类 Index index = new Index(); } //自动执行 public Index(){ Wdmb wdmb = new Wdmb();…
java窗口按钮位置设置 代码如下: package Day08; import java.awt.BorderLayout; import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel; public class Homework2 extends JFrame { public Homework2() { JPanel p1 = new JPanel(); p1.setLayout(new Bo…
/** *@author blovedr * 功能: java绘图原理------在窗口界面(或面板上)画出一张或多张图片问题解决方法 * 日期: 2018年4月28日     16:20 * 注释: 学习java的点点记录, 欢迎各位大神批评指导与交流. */ package com.test1; import javax.swing.*; import java.awt.*; public class Demo_1 extends JFrame{ MyPanel mp = null;  //…
先看java -version $java version "1.8.0_111" Java(TM) SE Runtime Environment (build 1.8.0_111-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode) 然后: echo $JAVA_HOME 不一定有,如果没有,那就要找一下 先 $which java /usr/bin/java 再找到/usr/bin/java的超链…
Java数据存储位置 P46页有感 一.前置知识 栈是由系统自动分配的,Java程序员对栈没有直接的操作权限, 堆是所有线程共享的内存区域,栈 是每个线程独享的. 堆是由程序员自己申请的,在使用new关键字创建一个对象的时候,对象就会被分配到堆内存中.并且由于栈是由系统自动分配的,因此申请的效率和速度是高于要使用new关键字申请内存的堆. 栈是一块连续的区域,并且栈的大小系统确定好的,当需要的栈空间小于剩余空间时,系统就会自动分配,否则会报栈溢出的错误:而堆空间则不是一块连续的区域,如果学过操作…
<零基础学Java> Java绘图基础 绘图是高级程序设计中非常重要的技术,例如,应用程序需要绘制闪屏图像.背景图像.组件外观Web程序可以绘制统计图.数据库存储的图像资源等. Graphics 绘图类 Graphic是一个抽象的画笔对象,可以在组件上绘制丰富多彩的几何图形和位图.Graphics类封装了Java支持的基本绘图操作所需的属性,主要包括颜色.字体.画笔,文本.图像等. Graphics类提供了绘图常用的方法,利用这些才法可以实现直线.矩形.多边形.椭圆.圆弧等图形和文本.图像的绘…
package com.hdwang.test; import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import java.awt.*; import java.awt.event.*; import java.awt.image.BufferedImage; import java.util.HashMap; import java.util.…
要写坦克大战当然要先画出坦克.java画图是基础. package com.game; import java.awt.*; import javax.swing.*; public class Pro_1 extends JFrame { public static MyPanel mp=null; /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub P…
public class Demo1 extends JFrame{ MyPanel mp=null; public static void main(String[] args){ Demo1 demo=new Demo1(); } public Demo1(){ mp=new MyPanel(); this.add(mp); this.setSize(400,300); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.set…
package com.haiyisoft.cAssistant.adapter.hessian; import java.awt.geom.Point2D;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map; /** * 根据订单的经纬度归属所在的商业区域 * @author lee * @date: 2017年2月6日 下午2:12:02 */public…
功能:在坐标系上绘制坦克 /* * 功能:坦克游戏的1.0 * 1. 画出坦克 * */ package com.tank; import javax.swing.*; import java.awt.*; public class demo2 extends JFrame{ /** * @param args */ Mypanel mp =null; public static void main(String[] args) { // TODO Auto-generated method s…
其中drawRect方法中的参数rect就是用来设置位置的,…
//字符串总宽度 private int getStringLength(Graphics g,String str) { char[] strcha=str.toCharArray(); int strWidth = g.getFontMetrics().charsWidth(strcha, 0, str.length()); System.out.println("字符总宽度:"+strWidth); return strWidth; } //每一行字符串宽度  自定义  也就是画…
/usr/libexec/java_home -V 第一个红框是安装数量, 第二个红框是目前正在使用的 JDK 版本位置…
paintComponent(Graphics g)方法: 1.不调用super.paintComponent(g)的话,rePaint()的时候就会把你写的paintComponent中的内容绘制上去.如果你调用super.paintComponent(g),那么就会把整个组件彻底清空,然后依次再绘制.    所以paintComponent就是本身这个容器自己画出自己组件的方法了.如果只是为了改变本身这个容器中的组件,只需要改写paintComponent方法就可以了,如果还要保留容器中的原…
藏这里了 还有一个…
Java绘图中,显示文字的方法主要有三种:(1)drawString(String str,int x,int y):在指定的位置显示字符串.(2)drawChars(char data[],int offset,int length, int x, int y):在指定的位置显示字符数组中的文字,从字符数组的offset位置开始,最多显示length个字符.(3)drawBytes(byte data[],int offset,int length,int x,int y), 在指定的位置显示…
绘图原理(1)Component类提供了两个和绘图相关最重要的⽅法:1. paint(Graphics g)绘制组件的外观2. repaint()刷新组件的外观当组件第⼀次在屏幕显示的时候,程序会⾃动的调paint()来绘制组件 绘图原理(2)在以下情况paint()将会被调⽤:1.窗⼝最小化,再最大化2.窗⼝的大小发⽣变化3. repaint函数被调 import javax.swing.*;import java.awt.*;/* 栗子 Java绘图基础*/ //定义一个MyPanel(我自…
package com.graphics; import java.awt.Graphics; import javax.swing.JFrame; import javax.swing.JPanel; /** * 1:Graphics类是所有图形上下文的抽象基类. * * 2:Graphics2D继承了Graphics类,实现了功能更加强大的绘图操作的集合. * 由于Graphics2D类是Graphics类的扩展,也是推荐使用的java绘图类 * 所以本章主要介绍使用Graphics2D类实…
通过上一节,我们学会的用java绘图.那现在就用java绘制自己坦克. 首先通过分析坦克由这几部分组成.如图 各个部件的长宽如图.15,10为圆心. /** * 坦克游戏的1.0版 * 1.画出坦克 * */ package com.test1; import javax.swing.*; import java.awt.*; import javax.swing.JFrame; public class MyTankGame1 extends JFrame { MyPanel mp = nul…
java平台 1.J2SE java开发平台标准版 2.J2EE java开发平台企业版 java程序需要在虚拟机上才可以运行,换言之只要有虚拟机的系统都可以运行java程序.不同系统上要安装对应的虚拟机才可以运行java程序 开发步骤 1.编写源文件 (.java) 2.编译源文件为类文件(.class)可用J2SE或J2EE编译 3.在虚拟机上运行 注释 //单行注释 /* */多行注释 java内容介绍 java编程可以分成三个方向: 1.java se (j2se)桌面开发  java中…
1 使用Servlet实现验证码,涉及的知识点主要为java 绘图技术与session保存数据. HTML页面 <html> <image src='images/logo1.jpg' /><hr/> <head><br/><title>登录</title> <br/><h1> 欢迎登录</h1></head> <body> <form action='/L…
java学习脚印:深入java绘图机制 写在前面 封装性越好的类在使用时,只要清楚接口即可,而不应该让程序员了解其内部结构; 对于平常的绘图来讲,java绘图机制无需了解太多,但是朦胧容易产生错误,绘图操作包括了整个GUI的显示问题,遂花了一些时间来学习.整理下,本文主要基于[1][2]以及众多资料整理以及自我理解和实践加工而成(如有错误,请纠正我).这里所讲的很多技术可能已经过时了,你可以略过这些部分,但是像下面关键概念以及绘图指导意见部分还是应该掌握. 1.javaGUI的背景 java G…
201871010128-杨丽霞<面向对象程序设计(Java)>第十一周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p/11867214.html 作业学习目标 (1) 掌握Vetor.Stack.Hashtable三个类的用途及常用API: (2)  掌握ArrayList.LinkList两个类的用途及常用API: (3) 了解…
代码剖析 在上一篇文章中,我们完成了贪吃蛇部分代码的构造.回头审视我们写的代码与思路,会发现我们遗漏了一个重要的地方,那就是:贪吃蛇的自身移动.想必大家都知道,贪吃蛇自身是会自己移动的,并且会跟随你的方向来不断移动.我们需要在代码中来体现这个功能,那么如何体现呢?查阅API,我们发现了一个TIMER类.API中的描述是:在指定时间间隔触发一个或多个ActionEvent,一个实例用法就是动画对象,它将Timer用作绘制其帧 的触发器.Timer的构造方法是Timer(int delay, Act…
简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级.中级.高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情.执着,对IT的憧憬.向往!此时此景,笔者只专注Android.Iphone等移动平台开发,看着这些源码心中有万分感慨,写此文章纪念那时那景!   Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能.编辑音乐软件的朋友,这款实例会对你有所帮助.Calendar万年历 1个目标文件…