欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java設(shè)計圖形與多媒體處理

 更新時間:2015年09月23日 14:26:34   投稿:lijiao  
本文主要介紹了Java的圖形設(shè)計以及多媒體處理,源碼也做了詳細(xì)的注釋,對于初學(xué)者應(yīng)該不難。詳細(xì)請看下文

本文實現(xiàn)了兩個效果:

第一種,同心圓效果圖:

/** 
 *程序要求:新建一個600*600像素的應(yīng)用程序窗口,并在窗口中繪制5個不同顏色的同心圓, 
 *所有圓心都是屏幕的中心點,相鄰兩個圓直接的半徑相差50像素 
 *效果圖如下圖所示(顏色隨機(jī)設(shè)置),源程序保存為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);           //設(shè)置窗口大小 
     setVisible(true);           //設(shè)置為可見 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//設(shè)置窗口關(guān)閉動作 
   
   } 
 
   
   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();    
   } 
 
 } 

第二種,播放音樂和切換圖片的小程序效果圖:

/** 
 *程序要求:編寫一個Applet的小程序,準(zhǔn)備5幅圖片和三個音樂文件,繪制到Applet中, 
 *并增加幾個按鈕,控制圖片的切換、放大、縮小和音樂文件的播放。 
 *作者:wwj 
 *日期:2012/4/29 
 *參考:neicole 
 *功能:能進(jìn)行圖片和歌曲的選擇變換的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 
 { 
 
   //創(chuàng)建兩個面板 
   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("連續(xù)"); 
   JButton stop=new JButton("停止"); 
   JButton nextSound=new JButton("下一首"); 
   //曲目下拉列表 
   JComboBox xx; 
   String names[]={ "曲目1.wav","曲目2.wav","曲目3.wav"}; 
   
  //創(chuàng)建畫布對象 
  MyCanvasl showPhotos; 
 
    
 
   public void init() 
   { 
     //窗口布局 
     this.setLayout(new BorderLayout()); 
 
     //為圖片控制按鈕注冊監(jiān)聽器 
     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); 
 
    //為控制播放音樂按鈕注冊監(jiān)聽器 
    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){    //按下循環(huán)按鈕 
      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); 
     //獲取當(dāng)前目錄下的圖片 
     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); 
 
   } 
  } 
 } 

 以上就是關(guān)于Java的圖形設(shè)計以及多媒體處理的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助。

相關(guān)文章

  • SpringBoot2.0如何啟用https協(xié)議

    SpringBoot2.0如何啟用https協(xié)議

    這篇文章主要介紹了SpringBoot2.0如何啟用https協(xié)議,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • Java截取特定兩個標(biāo)記之間的字符串實例

    Java截取特定兩個標(biāo)記之間的字符串實例

    下面小編就為大家?guī)硪黄狫ava截取特定兩個標(biāo)記之間的字符串實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • Java網(wǎng)絡(luò)編程TCP實現(xiàn)聊天功能

    Java網(wǎng)絡(luò)編程TCP實現(xiàn)聊天功能

    這篇文章主要為大家詳細(xì)介紹了Java網(wǎng)絡(luò)編程TCP實現(xiàn)聊天功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 如何使用Java中的Optional

    如何使用Java中的Optional

    這篇文章主要介紹了如何使用Java中的Optional,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-11-11
  • Java多線程ForkJoinPool實例詳解

    Java多線程ForkJoinPool實例詳解

    這篇文章主要介紹了Java多線程ForkJoinPool實例詳解,涉及forkjoin框架的相關(guān)內(nèi)容,需要的朋友可以參考下。
    2017-09-09
  • IDEA2019.2.2配置Maven3.6.2打開出現(xiàn)Unable to import Maven project

    IDEA2019.2.2配置Maven3.6.2打開出現(xiàn)Unable to import Maven project

    這篇文章主要介紹了IDEA2019.2.2配置Maven3.6.2打開出現(xiàn)Unable to import Maven project,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • springboot返回前端中文亂碼的解決

    springboot返回前端中文亂碼的解決

    這篇文章主要介紹了springboot返回前端中文亂碼的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • IDEA集成Sonar的完整流程

    IDEA集成Sonar的完整流程

    這篇文章主要介紹了IDEA集成Sonar的完整流程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • java實現(xiàn)動態(tài)數(shù)組

    java實現(xiàn)動態(tài)數(shù)組

    這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)動態(tài)數(shù)組,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • springboot2.x默認(rèn)使用的代理是cglib代理操作

    springboot2.x默認(rèn)使用的代理是cglib代理操作

    這篇文章主要介紹了springboot2.x默認(rèn)使用的代理是cglib代理操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08

最新評論