使用绘图技术绘制一个空心长方形,要求长度为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
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();
}
}
}
}
timg.gif