欢迎光临散文网 会员登陆 & 注册

Java绘图技术,swing画图工具,文字,图片素材,注释,个人理解,星空等【诗书画唱】

2020-07-27 22:21 作者:诗书画唱  | 我要投稿

使用绘图技术绘制一个空心长方形,要求长度为400px,宽度为200px,边框颜色为红色



package swing;

import java.awt.*;



import javax.swing.*;

public class paint extends JFrame{

public static void main(String[] args) {

new paint();

}

//public class paint{}这个类的构造方法:public paint(){}

public paint(){

//swing界面基本上要有:布局方式,大小,居中,释放资源,显示

this.setLayout(null);//:空布局 

this.setSize(520,520);

this.setLocationRelativeTo(null);

huaBi huaBiClass=new huaBi();

huaBiClass.setBounds(0,0,520,520);

this.add(huaBiClass);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setVisible(true);


}

}

class huaBi extends JPanel{

//使用画笔工具Graphics的方法就是要用paint方法:

public void paint(Graphics g){

g.setColor(Color.red);

// setColor设置颜色要先设置在drawRect或fillRect等的前面,

// setColor:设置空心矩形(drawRect)的边框的颜色

// 或实心矩形(fillRect)的填充的颜色


g.drawRect(13,14,400,200);


}

}







使用绘图技术绘制三色国旗,长度为400px,宽度为200px,颜色分别是红黄蓝三种颜色



package swing;

import java.awt.*;



import javax.swing.*;

public class guoQi extends JFrame{

public static void main(String[] args) {

new guoQi();

}

//public class paint{}这个类的构造方法:public paint(){}

public guoQi(){

//swing界面基本上要有:1布局方式,2大小,3居中,4释放资源,5显示

// ————

this.setLayout(null);//:1布局方式(这里为空布局 )

// ————

this.setSize(520,520);

// :2大小

// ————

this.setLocationRelativeTo(null);

// :3居中

// ————

huaBiGongJv huaBiGongJvClass=new huaBiGongJv();

huaBiGongJvClass.setBounds(0,0,520,520);

this.add(huaBiGongJvClass);

// ————

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// :4释放资源

// ————

this.setVisible(true);

//:5显示

// ————

}

}

class huaBiGongJv extends JPanel{

//使用画笔工具Graphics的方法就是要用paint方法:

public void paint(Graphics g){

// setColor设置颜色要先设置在drawRect或fillRect等的前面,

// setColor:设置空心矩形(drawRect)的边框的颜色

// 或实心矩形(fillRect)的填充的颜色


g.setColor(Color.red);


g.fillRect(13,14,400/3,200);

g.setColor(Color.yellow);


g.fillRect(13+400/3,14,400/3,200);

g.setColor(Color.blue);


g.fillRect(13+800/3,14,400/3,200);


}

}









使用绘图技术绘制自己的名字,字体为红色,字体为微软雅黑,大小为30px,加粗



package swing;

import java.awt.*;



import javax.swing.*;

public class font extends JFrame{

public static void main(String[] args) {

new font();

}

//public class paint{}这个类的构造方法:public paint(){}

public font(){

//swing界面基本上要有:1布局方式,2大小,3居中,4释放资源,5显示

// ————

this.setLayout(null);//:1布局方式(这里为空布局 )

// ————

this.setSize(520,520);

// :2大小

// ————

this.setLocationRelativeTo(null);

// :3居中

// ————

huaBiFont huaBiGongJvClass=new huaBiFont();

huaBiGongJvClass.setBounds(0,0,520,520);

this.add(huaBiGongJvClass);

// ————

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// :4释放资源

// ————

this.setVisible(true);

//:5显示

// ————

}

}

class huaBiFont extends JPanel{

//使用画笔工具Graphics的方法就是要用paint方法:

public void paint(Graphics g){

// setColor设置颜色要先设置在drawRect或fillRect等的前面,

// setColor:设置空心矩形(drawRect)的边框的颜色

// 或实心矩形(fillRect)的填充的颜色

// ______

// 使用绘图技术绘制自己的名字,

// 字体为红色,字体为微软雅黑,大小为30px,加粗:

//——————

//除了这个区域的部分根据不同用途,情况变等,其余部分基本不变

g.setColor(Color.red);

g.setFont(new Font("微软雅黑",Font.BOLD,30));

g.drawString("诗书画唱",100,100);


//——————


}

}







使用绘图技术绘制一个180度的半圆,颜色为红色



package swing;

import java.awt.*;



import javax.swing.*;

public class banYuan extends JFrame{

public static void main(String[] args) {

new banYuan();

}

//public class paint{}这个类的构造方法:public paint(){}

public banYuan(){

//swing界面基本上要有:1布局方式,2大小,3居中,4释放资源,5显示

// ————

this.setLayout(null);//:1布局方式(这里为空布局 )

// ————

this.setSize(520,520);

// :2大小

// ————

this.setLocationRelativeTo(null);

// :3居中

// ————

huaBibanYuan huaBiGongJvClass=new huaBibanYuan();

huaBiGongJvClass.setBounds(0,0,520,520);

this.add(huaBiGongJvClass);

// ————

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// :4释放资源

// ————

this.setVisible(true);

//:5显示

// ————

}

}

class huaBibanYuan extends JPanel{

//使用画笔工具Graphics的方法就是要用paint方法:

public void paint(Graphics g){

// setColor设置颜色要先设置在drawRect或fillRect等的前面,

// setColor:设置空心矩形(drawRect)的边框的颜色

// 或实心矩形(fillRect)的填充的颜色


g.setColor(Color.red);


g.fillArc(100,100,150,150,0,180);

// :上半圆

// 自己总结的语法:fillArc(X轴方向位移,

// Y轴方向位移,X轴方向宽度,Y轴方向高度,

// 正摆放后的扇形顺时针旋转的角度,扇形对应的圆周角)


}

}










使用绘图技术绘制一张图片




package swing;

import java.awt.*;



import javax.swing.*;

public class Img extends JFrame{

public static void main(String[] args) {

new Img();

}

//public class paint{}这个类的构造方法:public paint(){}

public Img(){

//swing界面基本上要有:1布局方式,2大小,3居中,4释放资源,5显示

// ————

this.setLayout(null);//:1布局方式(这里为空布局 )

// ————

this.setSize(520,520);

// :2大小

// ————

this.setLocationRelativeTo(null);

// :3居中

// ————

huaBiImg huaBiGongJvClass=new huaBiImg();

huaBiGongJvClass.setBounds(0,0,520,520);

this.add(huaBiGongJvClass);

// ————

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// :4释放资源

// ————

this.setVisible(true);

//:5显示

// ————

}

}

class huaBiImg extends JPanel{

//使用画笔工具Graphics的方法就是要用paint方法:

public void paint(Graphics g){

//加载图片

Image img=Toolkit.getDefaultToolkit().getImage("三连.jpg");

g.drawImage(img, 13,14,520,233,this);


}

}



三连.jpg



星空图的效果:


package swing;

import java.awt.Color;

import java.awt.Font;

import java.awt.Graphics;

import java.awt.Image;

import java.awt.Toolkit;

import java.util.Random;


import javax.swing.*;

public class starClass extends JFrame{


public static void main(String[] args) {

new starClass();

}

public starClass(){

//5个基本属性之三:

this.setLayout(null);

this.setSize(666,666);

this.setLocationRelativeTo(null);

// ————

// 启动线程部分:

huaTiClass huaTiClass=new huaTiClass();

Thread Thread=new Thread(huaTiClass);

Thread.start();

//————


// 创建画图工具的图形部分:

huaTiClass.setBounds(0,0,666,666);

this.add(huaTiClass);

//————

//5个基本属性之二:

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setVisible(true);

}

}

class huaTiClass extends JPanel implements Runnable{

public void paint(Graphics g){

Random RandomNum=new Random();

//设置画笔的颜色为黑色,这里是设置矩形的填充颜色:

g.setColor(Color.black);

//画个实心的矩形:

g.fillRect(0,0,666,666);

//绘制图片人物:

Image Image=Toolkit.getDefaultToolkit()

.getImage("timg.gif");

g.drawImage(Image,100,250,200,250,this);

//————

//用“*”来代替星星,绘制星星:

g.setColor(Color.white);

for(int i=0;i<100;i++){

g.drawString("*",RandomNum.

nextInt(600),RandomNum.nextInt(200));

}

//————

//绘制一个月亮:

g.fillOval(400,50,120,80);

g.setColor(Color.black);

g.fillOval(389,50,80,80);

//————

//每隔一段时间就打印一个字:“一起去看流星雨”

//【思路:将文字转为字符数组,for循环里每打印一个

//文字,休眠0.01秒】

char[] charArray="一起去看流星雨".toCharArray();

// (String类型的字符串).toCharArray:

//将字符串转化为字符数组:

g.setColor(Color.white);

g.setFont(new Font("微软雅黑",Font.BOLD,30));

for(int i=0;i<charArray.length;i++){

g.drawString(charArray[i]+"",666,233+(i*520));

try {

Thread.sleep(10);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

//————

}




@Override

public void run() {

while(true){

try {

Thread.sleep(10);

repaint();

// ————

// repaint

// vt. 再次(重新)油漆,再次(重新)画; 

// 恢复…原来的色彩;

// n. 重新涂漆的东西;

// ————

// repaint()是重要概念,

// 它是在图形线程后追加一段重绘操作,

// 是安全的!是系统真正调用的重绘!

// 所以如果你需要某个部件刷新一下界面,记得调用repaint(),

// 千万不要直接调用paint()!

// Graphics是一个抽象类,

// 其实现大都是平台相关的,

// 所以不容易自己创建一个graphics实例。

// 一般graphics的实例会由依照你所在的桌面环境给出。

// ————


} catch (InterruptedException e) {


e.printStackTrace();

}

}

}


}




Java绘图技术,swing画图工具,文字,图片素材,注释,个人理解,星空等【诗书画唱】的评论 (共 条)

分享到微博请遵守国家法律