Java图形设计和多媒体基础

澳门新浦京app下载 23

本文主要介绍了Java的图形设计以及多媒体处理,源码作者也做了详细的注释,对于初学者应该不难。详细请看下文。

DCPathButtonDemo(按钮的动画效果),

 

开始效果图:

澳门新浦京app下载 1

点击button后效果图:

澳门新浦京app下载 2

工程目录:

澳门新浦京app下载 3

工程详细目录:

澳门新浦京app下载 4

RootViewController.h

#import <UIKit/UIKit.h>
//加入头文件
#import "DCPathButton.h"

@interface RootViewController : UIViewController
<DCPathButtonDelegate>

@end

 

RootViewController.m

 

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    self.view.frame = CGRectMake(0, 0, 320, 460);
    self.view.backgroundColor = [UIColor whiteColor];
    DCPathButton *dcPathButton = [[DCPathButton alloc]
                                  initDCPathButtonWithSubButtons:6
                                  totalRadius:60
                                  centerRadius:15
                                  subRadius:15
                                  centerImage:@"custom_center"
                                  centerBackground:nil
                                  subImages:^(DCPathButton *dc){
                                      [dc subButtonImage:@"custom_1" withTag:0];
                                      [dc subButtonImage:@"custom_2" withTag:1];
                                      [dc subButtonImage:@"custom_3" withTag:2];
                                      [dc subButtonImage:@"custom_4" withTag:3];
                                      [dc subButtonImage:@"custom_5" withTag:4];
                                      [dc subButtonImage:@"custom_1" withTag:5];
                                  }
                                  subImageBackground:nil
                                  inLocationX:0 locationY:0 toParentView:self.view];
    dcPathButton.delegate = self;

}
#pragma mark - DCPathButton delegate
- (void)button_0_action{
    NSLog(@"Button Press Tag 0!!");
}

- (void)button_1_action{
    NSLog(@"Button Press Tag 1!!");
}

- (void)button_2_action{
    NSLog(@"Button Press Tag 2!!");
}

- (void)button_3_action{
    NSLog(@"Button Press Tag 3!!");
}

- (void)button_4_action{
    NSLog(@"Button Press Tag 4!!");
}

- (void)button_5_action{
    NSLog(@"Button Press Tag 5!!");
}

 

澳门新浦京app下载 5

同心圆效果图:

导语:春节将近,家家户户正购置年货,盼望着春节邀亲朋好友来家中做客。欣喜之余,也有几家愁,许多小户之家,空间已近饱和,亲朋好友来小家做客,活动连连碰壁,客人睡哪儿成了难题,小编为您搜罗法宝,有详细的效果图哦,让隐藏在墙壁澳门新浦京app下载,中的床为您排忧解难。

澳门新浦京app下载 6

开始效果图:
点击button后效果图: 工程目录: 工程详细目录: RootViewController.h
#import UIKit/UIKit.h // 加入…

长沙发+床 客厅变客房

/**  
 *程序要求:新建一个600*600像素的应用程序窗口,并在窗口中绘制5个不同颜色的同心圆,  
 *所有圆心都是屏幕的中心点,相邻两个圆直接的半径相差50像素  
 *效果图如下图所示(颜色随机设置),源程序保存为Ex7_1.java。  
 *作者:wwj  
 *日期:2012/4/25  
 *功能:显示一个有5个不同颜色的同心圆  
 **/ 

 import javax.swing.*;  
 import java.awt.*;  
 import java.awt.Color;  
 public class Ex7_1 extends JFrame  
 {  
     int red,green,blue;  
     Color color;  

     public Ex7_1()  
     {  
         super("一个有5个不同颜色的同心圆");    //显示窗口名称  
         setSize(600,600);                      //设置窗口大小  
         setVisible(true);                      //设置为可见  
         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置窗口关闭动作  

     }  

     public void paint(Graphics g)  
     {  
         //第一个圆  
        red=(int)(Math.random()*255);  
        green=(int)(Math.random()*255);  
        blue=(int)(Math.random()*255);  
        color=new Color(red,green,blue);  
        g.setColor(color);  
        g.fillOval(175,175,250,250);  
        //第二个圆  
        red=(int)(Math.random()*255);  
        green=(int)(Math.random()*255);  
        blue=(int)(Math.random()*255);  
        color=new Color(red,green,blue);  
        g.setColor(color);  
        g.fillOval(200,200,200,200);  
        //第三个圆  
        red=(int)(Math.random()*255);  
        green=(int)(Math.random()*255);  
        blue=(int)(Math.random()*255);  
        color=new Color(red,green,blue);  
        g.setColor(color);  
        g.fillOval(225,225,150,150);  
        //第四个圆  
        red=(int)(Math.random()*255);  
        green=(int)(Math.random()*255);  
        blue=(int)(Math.random()*255);  
        color=new Color(red,green,blue);  
        g.setColor(color);  
        g.fillOval(250,250,100,100);  
        //第五个圆  
        red=(int)(Math.random()*255);  
        green=(int)(Math.random()*255);  
        blue=(int)(Math.random()*255);  
        color=new Color(red,green,blue);  
        g.setColor(color);  
        g.fillOval(275,275,50,50);  

     }         

     public static void main(String[] args)  
     {  
         Ex7_1 e = new Ex7_1();       
     }  

 }

Case1效果图

播放音乐和切换图片的小程序效果图:

整齐的书架墙、喜庆的花纹长沙发、洁白的羊羔绒地毯,好小资的一款客厅,实在难以想象它如何变成一款精美的卧室,一起来看看。
澳门新浦京app下载 7

澳门新浦京app下载 8

Case1效果图

/**  
 *程序要求:编写一个Applet的小程序,准备5幅图片和三个音乐文件,绘制到Applet中,  
 *并增加几个按钮,控制图片的切换、放大、缩小和音乐文件的播放。  
 *作者:wwj  
 *日期:2012/4/29  
 *参考:neicole  
 *功能:能进行图片和歌曲的选择变换的applet小程序  
 **/ 

 import javax.swing.*;  
 import java.awt.*;  
 import java.awt.event.*;  
 import java.applet.Applet;  
 import java.applet.AudioClip;  

 public class Ex7_2 extends Applet implements ActionListener,ItemListener  
 {  

     //创建两个面板  
     JPanel p1=new JPanel();  
     JPanel p2=new JPanel();  
     JPanel p3=new JPanel();  
     //声音对象  
     AudioClip[] sound=new AudioClip[3];  
     int playingSong=0;  
     //切换图片的按钮  
     JButton lastPic=new JButton("上一张");  
     JButton setLarge=new JButton("放大");  
     JButton setLittle=new JButton("缩小");  
     JButton nextPic=new JButton("下一张");  
     //切换歌曲的按钮  
     JButton lastSound=new JButton("上一首");  
     JButton play=new JButton("播放");  
     JButton loop=new JButton("连续");  
     JButton stop=new JButton("停止");  
     JButton nextSound=new JButton("下一首");  
     //曲目下拉列表  
     JComboBox xx;  
     String names[]={ "曲目1.wav","曲目2.wav","曲目3.wav"};  

    //创建画布对象  
    MyCanvasl showPhotos;  

     public void init()  
     {  
         //窗口布局  
         this.setLayout(new BorderLayout());  

         //为图片控制按钮注册监听器  
         lastPic.addActionListener(this);  
         setLarge.addActionListener(this);  
         setLittle.addActionListener(this);  
         nextPic.addActionListener(this);  

         //向面板p1添加组件  
         p1.add(lastPic);  
         p1.add(setLarge);  
         p1.add(setLittle);  
         p1.add(nextPic);  
         p1.repaint();  

        //实例化下拉列表对象  
        xx = new JComboBox(names);  
        xx.addItemListener(this);  

        //为控制播放音乐按钮注册监听器  
        lastSound.addActionListener(this);  
        play.addActionListener(this);  
        loop.addActionListener(this);  
        stop.addActionListener(this);  
        nextSound.addActionListener(this);  

        for(int i=0;i<3;i++)  
         {  
            sound[i]=getAudioClip(getCodeBase(),"music/"+"曲目" 
                    +Integer.toString(i+1)+".wav");  
         }  

        //向面板p2添加组件  
         p2.add(xx);  
         p2.add(lastSound);  
         p2.add(play);  
         p2.add(loop);  
         p2.add(stop);  
         p2.add(nextSound);  
         p2.repaint();  

        showPhotos = new MyCanvasl();  
        p3.add(showPhotos);  
         p3.repaint();  

        //把面板p1和p2分别布置到窗口的北部和南部   
         add(p1,BorderLayout.NORTH);  
         add(p2,BorderLayout.SOUTH);  
         add(p3,BorderLayout.CENTER);  

         this.repaint();  

     }  

     //按钮的事件处理  
     public void actionPerformed(ActionEvent e)  
     {  

        if(e.getSource() == lastPic){  
            showPhotos.changePhotoShow('P');  
        }  
        else if(e.getSource() == nextPic){  
            showPhotos.changePhotoShow('N');  
        }  
        else if(e.getSource() == setLarge){  
            showPhotos.changePhotoSize('B');  
        }  
        else if(e.getSource() == setLittle){  
            showPhotos.changePhotoSize('S');  
        }  

        else if(e.getSource()==lastSound){  //上一首  
            sound[playingSong].stop();  
            playingSong=(playingSong-1+3)%3;  
            xx.setSelectedIndex(playingSong);  
            sound[playingSong].play();  

        }  
        else if(e.getSource()==play){       //按下播放按钮  
            sound[playingSong].play();  
        }  
        else if(e.getSource()==loop){       //按下循环按钮  
            sound[playingSong].loop();  
        }  
        else if(e.getSource()==stop){       //按下停止按钮  
            sound[playingSong].stop();  
        }  
        else{                               //下一首  
            sound[playingSong].stop();  
            playingSong=(playingSong+1)%3;  
            xx.setSelectedIndex(playingSong);  
            sound[playingSong].play();  

        }     
     }  

     //下拉列表的事件处理  
     public void itemStateChanged(ItemEvent e)  
     {  

         sound[playingSong].stop();  
         sound[playingSong]=getAudioClip(getCodeBase(),"music/"+xx.getSelectedItem());  
     }  

    class MyCanvasl extends Canvas  
    {  

        public Image[] img=new Image[5];  

        int MaxWidth = 600;  
        int MaxHeight = 500;  
        int nowImageIndex = 0;  
        int coordinateX = 0;  
        int coordinateY = 0;  
        int currentWidth = MaxWidth;  
        int currentHeight = MaxHeight;  

        MyCanvasl(){  
         setSize(MaxWidth,MaxHeight);  
         //获取当前目录下的图片  
         for(int i=0;i<5;i++){  
             img[i]=getImage(getCodeBase(),"image/"+Integer.toString(i+1)+".jpg");  
         }  
        }  

        private void changePhotoIndex(int index){  
            nowImageIndex = index;  
            changePhotoSize('M');  
        }  

        public void changePhotoShow(char command){  
            if('P' == command){  
                changePhotoIndex((nowImageIndex + 5 - 1 ) % 5);  
            }  
            else if('N' == command){  
                changePhotoIndex((nowImageIndex + 1) % 5);  
            }  
        }  

         public void changePhotoSize(char command){  
            if ('M' == command){  
                currentWidth = MaxWidth;  
                currentHeight = MaxHeight;  
            }  
            else if ('B' == command){  
                if(MaxWidth >= (currentWidth + 100) && MaxHeight >= (currentHeight + 100)){  
                    currentWidth += 100;  
                    currentHeight += 100;  
                }  
            }  
            else if('S' == command){  
                if((0 < (currentWidth - 100)) && (0 < (currentHeight - 100))){  
                    currentWidth = currentWidth - 100;  
                    currentHeight = currentHeight - 100;  
                }  
            }  
            coordinateX = (MaxWidth - currentWidth) / 2;  
            coordinateY = (MaxHeight - currentHeight) / 2;  
            repaint();  
        }  
            //paint方法用来在窗口显示图片  
     public void paint(Graphics g){  
           g.drawImage(img[nowImageIndex],coordinateX,coordinateY,currentWidth,currentHeight,this);  

     }  
    }  
 }

原来支撑架就在沙发座下面,将沙发抬起,打开折叠架,床就能缓缓降落,沙发座下划分了几个小格,作收纳之用。
澳门新浦京app下载 9

Case1效果图

待床落于地面,客厅瞬间变装成一款典雅的卧房,橙色在淡雅的房间之中显得格外亮丽,宛如春节是一年当中亲朋好友齐聚一堂,最为快乐的时刻。而亲友们不用再担心过于晚而赶车回家,在您盛情邀约之下,与您一起迎接新的一年。
澳门新浦京app下载 10

Case1效果图

这是这款壁床详细的尺寸,若是市面上买不到,自己定做一个也不错。
澳门新浦京app下载 11

餐桌+床 餐厅变客房

Case2效果图

油亮的墙壁、优美的吊灯,黑与红的餐桌,这款采光极好的餐厅,尽也能成为一间卧室,壁床将不可能变成了无限可能。
澳门新浦京app下载 12

Case2效果图

原来这面油亮的烤漆墙就是床的藏身之所,将它翻下,餐桌是与其合为一体的折叠式餐桌,随着床一起缓缓降落,渐渐隐去。
澳门新浦京app下载 13

Case2效果图

一款简约风格的卧室就这么落成,您可以将它作为自己的卧室,也可以是春节期间,亲朋好友的客房。
澳门新浦京app下载 14

Case2效果图

看看这款餐桌壁床的详细尺寸,仅供参考。
澳门新浦京app下载 15

书桌+床 书房变客房

Case3效果图

乍一看一定以为这是间书房,整洁的书架,简约的书桌,白天他可以是书房,亲朋好友来做客,轻松将书房变成客房,而卧室与书房的转变,就在于书桌与床的交替。
澳门新浦京app下载 16

Case3效果图

无需将书桌搬出,因为书桌本身也可以折叠,随着床的翻出,书桌也随着折叠于底部。
澳门新浦京app下载 17

Case3效果图

这款大床足够2个人睡,远亲来家做客,不用再打地铺了,变装以后的书房,即成就一款舒适典雅的卧室,舒舒服服过团圆年。
澳门新浦京app下载 18

Case3效果图

忍不住想置办一张这样的壁床了吧,以上是详细尺寸,供您参考。
澳门新浦京app下载 19

沙发+床 小伙伴玩耍空间大

Case4效果图

简单干净的落地窗,明快亮丽的橙色,温暖的长绒地毯,舒适的小沙发。春节,亲朋好友带着各自的小孩儿来你家做客,孩子们则会围成他们自己的圈子,在这他们有足够空旷的场地相互嬉戏。你根本没有发现床的存在,它藏在哪儿呢?
澳门新浦京app下载 20

Case4效果图

拿开了沙发坐垫和靠垫,将板翻下,小床渐渐露出了脸,原来它就在小沙发的后墙之中。
澳门新浦京app下载 21

Case4效果图

你是否和我一样产生了这样的疑问,沙发垫和靠垫如何安置?细腻的设计师不会放过任何角落,沙发底座同时也是收纳箱,变装后的闲置沙发垫就巧妙的收入其中,它同时也是变装前床上的枕头毛毯的收纳地。
澳门新浦京app下载 22

Case4效果图

小床变装完毕,同样不失温馨舒适,床脚架巧妙的落于地毯上,以保护地毯受到刮损。夜幕降至,伙伴们回到自己的家,这时游玩场所则变回温馨的卧室,伴宝宝安心入眠。
澳门新浦京app下载 23

Case4效果图

以上是详细尺寸,可供您需要之时的参考。

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图