java编程画图_Java绘图技术基础(实例讲解)

如下所示:

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.setVisible(true);

}

}

//定义一个MyPanel(我自己的面板,是用于绘图和显示绘图的区域)

class MyPanel extends JPanel{

//覆盖JPanel的paint方法

public void paint(Graphics g){ //Graphics是绘图的重要类,可以理解成一只画笔

//1、调用父类函数完成初始化(不可少)

super.paint(g);

// System.out.println("paint被调用");

g.drawOval(10, 10, 30, 30); //先画出一个圆

g.drawLine(10, 10,40, 40); // 画直线

g.drawRect(10, 10, 40, 60); //画矩形边框

g.setColor(Color.BLUE); //设置颜色

g.fillRect(70, 70, 40, 60); //填充矩形

g.setColor(Color.gray);

g.fillRect(150, 150, 30,40);

//在面板上画出图片

Image im=Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/imag_1"));

g.drawImage(im, 200, 200, 200, 150, this); //显示

//画出字体

g.setColor(Color.GREEN);

g.setFont(new Font("隶书",Font.BOLD,30));

g.drawString("祖国万岁!", 100, 80);

}

}

1、Component类提供了两个和绘图相关最重要的方法

1)paint(Graphics g)绘制组件外观

2)repaint()刷新组件的外观

当组件第一次在屏幕显示时,程序会自动的调用paint()方法来绘制组件。

2、关于Graphics类

0e45c7cf50e1a699f1e3f50cfc535745.png

运行效果如下:

772ad3af6d5eafabb3ab9f9351a49d55.png

以上这篇Java绘图技术基础(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的Java 3D画图实例,它绘制了一个旋转的立方体: ```java import java.applet.Applet; import java.awt.BorderLayout; import java.awt.GraphicsConfiguration; import javax.media.j3d.*; import javax.vecmath.*; import com.sun.j3d.utils.applet.MainFrame; import com.sun.j3d.utils.geometry.ColorCube; import com.sun.j3d.utils.universe.SimpleUniverse; public class Java3DExample extends Applet { public Java3DExample() { setLayout(new BorderLayout()); GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration(); Canvas3D canvas = new Canvas3D(config); add("Center", canvas); BranchGroup scene = createSceneGraph(); scene.compile(); SimpleUniverse simpleU = new SimpleUniverse(canvas); simpleU.getViewingPlatform().setNominalViewingTransform(); simpleU.addBranchGraph(scene); } public BranchGroup createSceneGraph() { BranchGroup objRoot = new BranchGroup(); Transform3D tr = new Transform3D(); tr.setTranslation(new Vector3f(0.0f, 0.0f, -5.0f)); objRoot.addChild(new ColorCube(0.4)); Alpha rotationAlpha = new Alpha(-1, 4000); RotationInterpolator rotator = new RotationInterpolator(rotationAlpha, objRoot, tr, 0.0f, (float) Math.PI * 2.0f); BoundingSphere bounds = new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 100.0); rotator.setSchedulingBounds(bounds); objRoot.addChild(rotator); return objRoot; } public static void main(String[] args) { new MainFrame(new Java3DExample(), 640, 480); } } ``` 这个例子创建了一个Java 3D场景,其中包含一个旋转的彩色立方体。要运行这个例子,请将它保存到名为Java3DExample.java的文件中,并使用Java编译器编译它。然后,从命令行运行以下命令: ``` appletviewer Java3DExample.java ``` 这将在窗口中显示一个Java 3D场景,您可以在其中旋转和缩放立方体。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值