java graphics类详解_java 基础二 Graphics类
一、處理圖形
1.畫(huà)直線(xiàn)
void drawLine (int startx , int starty , int endx , int endy)
參數(shù)列表:直線(xiàn)開(kāi)始的橫坐標(biāo)、縱坐標(biāo),直線(xiàn)結(jié)束的橫坐標(biāo)、縱坐標(biāo)。
2.畫(huà)矩形
1) 矩形邊框:void drawRect(int top , int left , int width , int height )
2) 實(shí)心矩形 :void fillRect(int top , int left , int width , int height)
參數(shù)列表:矩形的左上角坐標(biāo)(x,y),寬度和高度。
3.圓角矩形
1) 圓角矩形邊框 : void drawRoundRect(int top , int left , int width , int height , int xDiam , int yDiam)
2 )實(shí)心圓角矩形void fillRoundRect(int top , int left , int width , int height , int xDiam , int yDiam)
參數(shù)列表 :圓角矩形的左上角坐標(biāo),寬度,高度,X軸上的弧度,Y軸上的弧度
4.畫(huà)橢圓和圓形
1)空心圓:void drawOval(int top , int left , int width , int height)
2)實(shí)心圓:void fillOval(int top , int left , int width , int height)
參數(shù)列表 :左上角坐標(biāo),寬,高
5.畫(huà)圓弧
1)空心圓弧:void drawArc(int top , int left , int width , int height , int startAngle , int sweepAngle);
2)實(shí)心圓弧: void fillArc(int top , int left , int width , int height , int startAngle , int sweepAngle);
參數(shù)列表 :在左上角坐標(biāo)為(top , left)寬為width 高為 height的矩形中畫(huà)圓弧 ,startAngle是與3點(diǎn)鐘的角度 ,sweepAngel是與startAngle的角度。
6.畫(huà)多邊形
1)空心多邊形:void drawP
2)實(shí)心多邊形:
import java.awt.Frame;
import java.awt.Panel;
import java.awt.Graphics;
import java.awt.Color;
public class Test04{
public static void main(String[] args){
Frame f = new Frame();
f.setSize(1000,1000);
MyPanel mp = new MyPanel();
f.add(mp);
f.show();
}
}
class MyPanel extends Panel{
public void paint(Graphics g){
g.drawLine(100,50,100,100);
g.drawString("Hello World !",120,100);
g.setColor(Color.green);
g.drawRect(100,100,200,100);
g.fillRect(350,100,200,100);
g.drawRoundRect(600,100,200,100,50,50);
g.fillRoundRect(850,100,200,100,20,100);
g.drawOval(100,250,100,100);
g.fillOval(250,250,80,100);
g.drawArc(350,250,100,100,0,90);
g.fillArc(450,250,100,100,0,90);
g.fillArc(550,250,100,100,10,80);
}
}
二、Graphics類(lèi)的應(yīng)用
1、繪制五角星
import java.awt.Frame;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Panel;
import java.math.*;
public class Test02
{
public static void main(String[] args)
{
Frame f = new Frame();
f.setSize(1000,1000);
f.setBackground(Color.black);
MyPanel mp = new MyPanel();
f.add(mp);
f.show();
}
}
class MyPanel extends Panel
{
public void paint(Graphics g)
{
double xA= 2 , yA= 2 , c = 2,j36,j18,j54;
double xB ,yB ,xC,yC,xD ,yD,xE ,yE,xf,yf,xg,yg;
j36 = Math.toRadians(36);//轉(zhuǎn)化成角度
j18 = Math.toRadians(18);
j54 = Math.toRadians(54);
xB = xA+c*Math.cos(j36);
yB = yA-c*Math.sin(j36);
xC = xA+2*c*Math.cos(j36);
yC = yA;
xD = xA+c*Math.sin(j18);
//System.out.println("xD ="+xD+" c*Math.sin(18)"+c*Math.sin(18) );
yD = yA+c*Math.cos(j18);
xE = xC - c*Math.sin(j18);
yE = yD;
xf = xD+c/2;
yf = yD-(c/2)*Math.tan(j36);
xg = xE - c/(2*Math.sin(j54))*Math.sin(j18);
yg = yE - c/(2*Math.sin(j54))*Math.cos(j18);
//int xpoints[] = {(int)(xB*100),(int)(xD*100),(int)(xC*100),(int)(xA*100),(int)(xE*100),(int)(xB*100)};
//int ypoints[] = {(int)(yB*100),(int)(yD*100),(int)(yC*100),(int)(yA*100),(int)(yE*100),(int)(yB*100)};
int xpoints[] = {(int)(xB*100),(int)(xD*100),(int)(xE*100),(int)(xB*100)};
int ypoints[] = {(int)(yB*100),(int)(yD*100),(int)(yE*100),(int)(yB*100)};
int num = 4 ;
//System.out.println((int)(xA*100)+" "+(int)(yA*100)+" , "+(int)(xD*100)+" "+(int)(yD*100));
g.setColor(Color.white);
g.fillPolygon(xpoints,ypoints,num);
int xpoints1[] = {(int)(xA*100), (int)(xC*100),(int)(xE*100),(int)(xA*100)};
int ypoints1[] = {(int)(yA*100),(int)(yC*100),(int)(yE*100),(int)(yA*100)};
g.fillPolygon(xpoints1,ypoints1,num);
g.setColor(Color.black);
int xpoints2[] = {(int)(xD*100),(int)(xf*100),(int)(xE*100),(int)(xD*100)};
int ypoints2[] = {(int)(yD*100),(int)(yf*100),(int)(yE*100),(int)(yD*100)};
g.fillPolygon(xpoints2,ypoints2,4);//減去多余的部分
int xpoint3[] = {(int)(xE*100),(int)(xg*100),(int)(xC*100),(int)(xE*100)};
int ypoint3[] = {(int)(yE*100),(int)(yg*100),(int)(yC*100),(int)(yE*100)};
g.fillPolygon(xpoint3,ypoint3,4);//減去多余的部分
}
}
五角星的坐標(biāo)圖 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?運(yùn)行結(jié)果圖
2.隨機(jī)輸出星號(hào)
import java.awt.Frame;
import java.awt.Panel;
import java.awt.Graphics;
public class Test03
{
public static void main(String[] args)
{
Frame f = new Frame();
f.setSize(500,500);
MyPanel mp = new MyPanel();
f.add(mp);
f.show();
}
}
class MyPanel extends Panel
{
public void paint(Graphics g)
{
for(int i=0 ;i<50;i++)
{
int x = (int)(Math.random()*500);//生成0-500的隨機(jī)數(shù)
int y = (int)(Math.random()*500);
g.drawString("*",x,y);
}
}
}
Java基礎(chǔ)-DButils工具類(lèi)(QueryRunner)詳解
Java基礎(chǔ)-DButils工具類(lèi)(QueryRunner)詳解 作者:尹正杰 版權(quán)聲明:原創(chuàng)作品,謝絕轉(zhuǎn)載!否則將追究法律責(zé)任. 如果只使用JDBC進(jìn)行開(kāi)發(fā),我們會(huì)發(fā)現(xiàn)冗余代碼過(guò)多,為了簡(jiǎn)化JDBC ...
Java面試題總結(jié)之Java基礎(chǔ)(二)
Java面試題總結(jié)之Java基礎(chǔ)(二) 1.寫(xiě)clone()方法時(shí),通常都有一行代碼,是什么? 答:super.clone(),他負(fù)責(zé)產(chǎn)生正確大小的空間,并逐位復(fù)制. 2.GC 是什么? 為什么要有G ...
Java基礎(chǔ)之File類(lèi)的使用
Java基礎(chǔ)之File類(lèi)的使用 1.File類(lèi)的構(gòu)造方法和常用方法 2.對(duì)File中l(wèi)istFile(FileNameFilter name)學(xué)習(xí) 3.與File文件類(lèi)相關(guān)的實(shí)現(xiàn) File類(lèi)的構(gòu)造方法 ...
java基礎(chǔ)(二) -對(duì)象和類(lèi)
Java 對(duì)象和類(lèi) Java作為一種面向?qū)ο笳Z(yǔ)言.支持以下基本概念: 多態(tài) 繼承 封裝 抽象 類(lèi) 對(duì)象 實(shí)例 方法 重載 對(duì)象:對(duì)象是類(lèi)的一個(gè)實(shí)例(對(duì)象不是找個(gè)女朋友),有狀態(tài)和行為.例如,一條狗是一 ...
java基礎(chǔ)(二)-----java的三大特性之繼承
在中有這樣一句話(huà):復(fù)用代碼是Java眾多引人注目的功能之一.但要想成為極具革命性的語(yǔ)言,僅僅能夠復(fù)制代碼并對(duì)加以改變是不夠的,它還必須能夠做更多的事情.在這句 ...
Java基礎(chǔ):Object類(lèi)中的equals與hashCode方法
前言 這個(gè)系列的文章主要用來(lái)記錄我在學(xué)習(xí)和復(fù)習(xí)Java基礎(chǔ)知識(shí)的過(guò)程中遇到的一些有趣好玩的知識(shí)點(diǎn),希望大家也喜歡. 一切皆對(duì)象 ? 對(duì)于軟件工程來(lái)說(shuō)面向?qū)ο缶幊逃幸惶淄暾慕鉀Q方案:OOA.OOD.O ...
Java基礎(chǔ)(二) 基本類(lèi)型數(shù)據(jù)類(lèi)型、包裝類(lèi)及自動(dòng)拆裝箱
我們知道基本數(shù)據(jù)類(lèi)型包括byte, short, int, long, float, double, char, boolean,對(duì)應(yīng)的包裝類(lèi)分別是Byte, Short, Integer, Long ...
[ 轉(zhuǎn)載 ] Java基礎(chǔ)二
前言 關(guān)于贏在面試的Java題系列基本收集整理完成了,所有題目都是經(jīng)過(guò)精心挑選的,很基礎(chǔ)又考驗(yàn)求職者的基本功,應(yīng)該說(shuō)被面試到的幾率很大.這里整理挑選出來(lái)供大家面試前拿來(lái)看一看,所有題目整理自網(wǎng)絡(luò),有一 ...
Java基礎(chǔ)二:常量池
目錄: 自動(dòng)裝箱與拆箱 常量池 ==與equals()區(qū)別 1. 自動(dòng)裝箱與拆箱 Java是一個(gè)近乎純潔的面向?qū)ο缶幊陶Z(yǔ)言,但是為了編程的方便還是引入了基本數(shù)據(jù)類(lèi)型,但是為了能夠?qū)⑦@些基本數(shù)據(jù)類(lèi)型當(dāng)成 ...
隨機(jī)推薦
Android之控件使用
Android系統(tǒng)為我們提供了大量的控件,例如:開(kāi)關(guān)控件.單選按鈕.多選按鈕.單選菜單等等,那么這些控件如何使用呢?本篇我將帶領(lǐng)大家一道學(xué)習(xí)一下如何使用這些控件.所謂無(wú)圖無(wú)真相,先讓大家看一下效果圖: ...
javascript設(shè)計(jì)模式實(shí)踐之職責(zé)鏈--具有百葉窗切換圖片效果的JQuery插件(三)
在上一篇里,通過(guò)采用模板方法模式完成了切換效果對(duì)象的構(gòu)建編寫(xiě). 接下來(lái)就是完成各效果對(duì)象的調(diào) ...
OpenStack 企業(yè)私有云的若干需求(10):OpenStack 的前景和錢(qián)景
本系列會(huì)介紹OpenStack 企業(yè)私有云的幾個(gè)需求: 自動(dòng)擴(kuò)展(Auto-scaling)支持 多租戶(hù)和租戶(hù)隔離 (multi-tenancy and tenancy isolation) 混合云( ...
【轉(zhuǎn)】JVM 基礎(chǔ)知識(shí)
幾年前寫(xiě)過(guò)一篇關(guān)于JVM調(diào)優(yōu)的文章,前段時(shí)間拿出來(lái)看了看,又添加了一些東西.突然發(fā)現(xiàn),基礎(chǔ)真的很重要.學(xué)習(xí)的過(guò)程是一個(gè)由表及里,再由里及表的過(guò)程,所謂的“溫故而知新”.而真正能走完這個(gè)輪回的人,也就能 ...
【Spring Cloud筆記】 斷路器-hystrix
在微服務(wù)架構(gòu)中,一個(gè)微服務(wù)的超時(shí)失敗可能導(dǎo)致瀑布式連鎖反映,Spring Cloud Netflix 的斷路器Hystrix通過(guò)自主反饋,防止了這種情況發(fā)生.下面介紹簡(jiǎn)單的斷路器使用方法. [step ...
test markdown to html
軟件版本 PHP 5.5.25 Yaf 2.3.2 域名 正式域名 gm.mgame.qihoo.net demo域名 demo.gm.mgame.qihoo.net 配置 配置目錄 后臺(tái)配置 con ...
第11章 拾遺5:IPv6和IPv4共存技術(shù)(3)_NAT-PT技術(shù)【全書(shū)完】
6.4 NAT-PT (1)NAT-PT和NAT的差別 ①NAT-PT(附帶協(xié)議轉(zhuǎn)換的網(wǎng)絡(luò)地址轉(zhuǎn)換)技術(shù)秉承NAT技術(shù)的思想,但在原理方面大有不同. ②NAT-PT和NAT本質(zhì)的區(qū)別在于應(yīng)用場(chǎng)合的不同 ...
PAT《數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)與實(shí)驗(yàn)指導(dǎo)》實(shí)驗(yàn)項(xiàng)目集 2-09 2-10 2-11 2-12 2-13
pat 2-09 裝箱問(wèn)題模擬 #include #include #include using namespace st ...
MySQL中UNSIGNED和ZEROFILL的介紹
UNSIGNED: 將數(shù)字類(lèi)型無(wú)符號(hào)化,這與C和C++這些程序語(yǔ)言的unsigned含義相同. INT的類(lèi)型范圍-2 147 483 648~2 147 483 647 INT UNSIGNED范圍0 ...
yii2 表單輸入框設(shè)置
= $form->field($userRole, 'userid', ['options' =>['class' => 'bigDiv'] ])->textInpu ...
總結(jié)
以上是生活随笔為你收集整理的java graphics类详解_java 基础二 Graphics类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 王之泰201771010131《面向对象
- 下一篇: freebsd12 安装gnome3图形