黑马程序员技术交流社区

标题: 用Java画出丰富多样的图像 [打印本页]

作者: Alexander    时间: 2014-3-4 12:58
标题: 用Java画出丰富多样的图像
可能你在学Java的UI的时候被这样的问题所烦恼
要用纯Java语言画出一个用户界面实在是太麻烦了
更别说那些多彩,多样的图像,现在,我就为大家展示我用Java画出来的图像

下面是源代码

import java.awt.*;
import java.awt.geom.Ellipse2D;
import java.util.Random;

import javax.swing.*;

public class ArtDesign extends JFrame {

        public ArtDesign() {
                super("艺术图案");
                setBounds(500, 100, 400, 400);
                setVisible(true);
                setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }
       
        public void paint(Graphics g) {
                Graphics2D g2 = (Graphics2D)g;
                //只要调整后面的四个参数,你会发现,图像变样了!
                Ellipse2D.Float ellipse = new Ellipse2D.Float(-80, 20, 130, 60);
                Random random = new Random();
                //如要调整圆心的相对位置,比如向下移动,调整translate()中参数y,使其增大即可
                g2.translate(200, 180);
                //要画出很多颜色,当然颜色的三个参数要随机取了
                int R = random.nextInt(256);
                int G = random.nextInt(256);
                int B = random.nextInt(256);
                Color color = new Color(R, G, B);
                g2.setColor(color);
                g2.draw(ellipse);
                int i = 0;
               
                while(i < 100) {
                        R = random.nextInt(250);
                        G = random.nextInt(256);
                        B = random.nextInt(256);
                        color = new Color(R, G, B);
                        g2.setColor(color);
                        g2.rotate(10);
                        g2.draw(ellipse);
                        i ++;
                }
               
        }
       
        public static void main(String[] args) {
                new ArtDesign();
        }
}


看了上面的代码,是不是感觉要画出很漂亮的图片很简单啊?

QQ截图20140304123916.png (44.89 KB, 下载次数: 10)

这图像不错吧!

这图像不错吧!

QQ截图20140304125138.png (60.5 KB, 下载次数: 8)

只修改了一个参数,就变成了这样

只修改了一个参数,就变成了这样

3.png (56.16 KB, 下载次数: 11)

再来一个

再来一个

4.png (50.11 KB, 下载次数: 9)

好吧,这个挺扭曲的

好吧,这个挺扭曲的

作者: kira    时间: 2014-3-4 17:59
:LSwing在java里面一般很少作要求 不过LZ画的不错 虽然我还没运行
作者: Alexander    时间: 2014-3-4 18:21
kira 发表于 2014-3-4 17:59
Swing在java里面一般很少作要求 不过LZ画的不错 虽然我还没运行

呵呵,这是个给大家娱乐的,搞不好会在什么地方用的说不定:lol
作者: e.c    时间: 2014-3-4 20:42
每次画得不不一样,不错。
swing我差不多是跳过的。。。。得去补了。
作者: Alexander    时间: 2014-3-4 21:11
e.c 发表于 2014-3-4 20:42
每次画得不不一样,不错。
swing我差不多是跳过的。。。。得去补了。

这个程序还可以改进,就是可以设计一个界面用来输入Ellipse2D.Float(-80, 20, 130, 60)中的四个参数,然后点击确定就可以查看图像了,老是改代码挺麻烦的
作者: kira    时间: 2014-3-5 10:38
Alexander 发表于 2014-3-4 21:11
这个程序还可以改进,就是可以设计一个界面用来输入Ellipse2D.Float(-80, 20, 130, 60)中的四个参数,然 ...

哈哈 哥们不错 学习了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2