一個圖片時你知道,現(xiàn)在只是切換的問題?
創(chuàng)新互聯(lián)公司長期為近千家客戶提供的網站建設服務,團隊從業(yè)經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網生態(tài)環(huán)境。為蕭縣企業(yè)提供專業(yè)的做網站、網站制作,蕭縣網站改版等技術服務。擁有10年豐富建站經驗和眾多成功案例,為您定制開發(fā)。
給按鈕添加一個 ActionListener,在它的 actionPerformed 方法中做你的事情,把 jpanel.setIcon(..) 換張圖片。
自己寫的代碼。能通過測試
題目中的要求用線程實現(xiàn)圖片的切換
主要有兩種方式可以實現(xiàn)。一種是Swing包下的Timer類。一種是Thread類
import?java.awt.*;
import?java.awt.event.*;
import?javax.swing.*;
public?class?MousDemo?extends?JFrame?{
MyJPanel?mp;
int?index;
ImageIcon[]?imgs?=?{?new?ImageIcon("C:\\Users\\lenovo\\Desktop\\a.png"),
new?ImageIcon("C:\\Users\\lenovo\\Desktop\\b.png")?};
public?MousDemo()?{
mp?=?new?MyJPanel(false);
this.add(mp);
this.setSize(300,?200);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setTitle("鼠標窗口");
this.setVisible(true);
/**
?*?方式一,使用TImer來切換圖片
?*?Swing下的Timer組件,個人覺得非常適合
?*?Timer(200,new?ActionListener());意思就是每200毫秒執(zhí)行一次ActionListener里面的方法
?*?*/
Timer?timer?=?new?Timer(200,new?ActionListener()?{
@Override
public?void?actionPerformed(ActionEvent?e)?{
mp.flag?=?!mp.flag;
mp.repaint();
}
});
timer.start();
/**
?*?方法二:
?*?線程的方式
?*?*/
// new?Thread(new?Runnable()?{
//
// @Override
// public?void?run()?{
// while(true){
// mp.flag?=?!mp.flag;
// mp.repaint();
// try?{
// Thread.sleep(200);
// }?catch?(InterruptedException?e)?{
// e.printStackTrace();
// }
// }
//
// }
// }).start();
}
public?static?void?main(String[]?args)?{
new?MousDemo();
}
class?MyJPanel?extends?JPanel{
boolean?flag;
public?MyJPanel(boolean?flag)?{
this.flag?=?flag;
}
@Override
public?void?paint(Graphics?g)?{
super.paint(g);
if(flag?==?false){
g.drawImage(imgs[0].getImage(),?0,?0,this);
}else{
g.drawImage(imgs[1].getImage(),?0,?0,this);
}
}
}
}
如果是普通切換的話,直接定義一個int值,根據int值的不同 來畫不同的東西就可以了\x0d\x0aint index;\x0d\x0aswitch(index){\x0d\x0a case 0:\x0d\x0a g.drawImage(a,0,0,20); \x0d\x0a break;\x0d\x0a case 1:\x0d\x0a g,drawImage(b,0,0,20);\x0d\x0a break;\x0d\x0a .................................\x0d\x0a}\x0d\x0a \x0d\x0a如果用漸變效果的話,創(chuàng)建一個數(shù)組記錄下一張要話的圖片的所有RGB值,初始設置所有像素點的透明度為100%,即完全透明,然后一點點的把透明度降低,直到為0,這樣就把第二章圖片用漸變的方法繪制出來了,這時就可以不用畫第一張圖片了。
使用線程做Thread,或者實現(xiàn)Runnable的接口
使用Timer類做,定時器
使用spring做
例如:
class?ChangeImageTask?extends?TimerTask?{
public?void?run()?{
int?amount?=?WithBackgroundImageJPanel.this.allImages.size();
System.out.println("all?pictures:"?+?amount);
if?(amount??0)?{
int?index?=?WithBackgroundImageJPanel.this.currentImageIndex;
index++;
index?=?index?%?amount;
System.out.println("current?pic:"?+?index);
WithBackgroundImageJPanel.this.currentBackgroundImage?=?WithBackgroundImageJPanel.this.allImages
.get(index);
WithBackgroundImageJPanel.this.currentImageIndex?=?index;
javax.swing.SwingUtilities.invokeLater(new?Runnable()?{
public?void?run()?{
WithBackgroundImageJPanel.this.repaint();
}
});
參考代碼,
注意圖片的路徑,拿不準的話,就使用絕對路徑吧
import?java.awt.*;
import?java.awt.event.*;
import?javax.swing.*;
//我的圖片路徑是?src\\images\\1.gif??.有四張?從1.jpg~~4.jpg
public?class?ImageDemo?extends?JFrame?{
JLabel?jl;
JPanel?jp;
public?ImageDemo()?{
jp?=?new?JPanel();
int?i;
for?(i?=?0;?i??4;?i++)?{
if(i?==0){//初始化的時候,默認顯示的圖片
jl?=?new?JLabel(new?ImageIcon("src\\images\\"+1+".gif"));
}
//按鈕
JButton?jb?=?new?JButton("第"+(i+1)+"張圖");
int?z?=?i;
//當按鈕點擊的時候
jb.addActionListener(new?ActionListener()?{
@Override
public?void?actionPerformed(ActionEvent?e)?{
//設置jl的圖片
jl.setIcon(new?ImageIcon("src\\images\\"+(z+1)+".gif"));
}
});
jp.add(jb);
}
this.setLocation(200,?120);
this.setSize(500,200);
this.setLayout(new?BorderLayout());
this.add(jl);
this.add(jp,BorderLayout.SOUTH);
this.setTitle("圖片瀏覽");
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}
public?static?void?main(String[]?args)?{
new?ImageDemo();
}
}
現(xiàn)在沒空幫你寫代碼了,給你個思路自己寫吧!輪播肯定是要切換圖片的,并且一般切換的時候是從左到右或從右到左慢慢切的,所以你定義一個圖片地址數(shù)組,再定義兩個jlabel用來顯示圖片,一個JLabel顯示當前圖片,另一個顯示最新圖片!好了,現(xiàn)在你定義一個timer定時器來切換,每隔兩秒,就判斷一下最新的圖片是哪個jlabel,然后將另一個jlabel填充新的圖片,然后setlocation()來移動圖片,x坐標每次向左幾個像素,直至移動完成!這樣就是一次輪播,當然你需要將兩個jlabel放到一個panel中,免得會出現(xiàn)第二個圖片多出一截在慢慢移動的情況
網頁題目:廣告圖片切換java代碼,廣告圖片切換java代碼大全
瀏覽路徑:http://chinadenli.net/article30/hdoeso.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化、面包屑導航、網站策劃、響應式網站、網站設計公司、App設計
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)