自己寫的代碼。能通過測試

成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),鐵東企業(yè)網(wǎng)站建設(shè),鐵東品牌網(wǎng)站建設(shè),網(wǎng)站定制,鐵東網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,鐵東網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
題目中的要求用線程實(shí)現(xiàn)圖片的切換
主要有兩種方式可以實(shí)現(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("鼠標(biāo)窗口");
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);
}
}
}
}
寫個定時(shí)器,定時(shí)每幾秒換一次圖片.或者寫個線程,在線程循環(huán)里換圖片,設(shè)定睡眠每次幾秒執(zhí)行一次.
你好,按照你的要求代碼如下,修改了三處
簡單說明一下,就是加了一個標(biāo)識boolean,用true/false來表示顯示第一張/第二張圖片
import java.awt.*;
import java.awt.event.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.*;
public class zhandou extends JFrame implements KeyListener {
Image roleImage, Image1;
int x, y;
public zhandou() {
super("MOVE");
Container c = getContentPane();
setSize(320, 240);
setVisible(true);
loadImage();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// setFocusable(true);
addKeyListener(this);
}
boolean key = true;// 加這樣一個標(biāo)識,true是第一張圖片,false為第二張圖片
public void paint(Graphics g) {
super.paint(g);
// drawRole(g);
if (key) {// 根據(jù)標(biāo)識判斷需要顯示的圖片
g.drawImage(roleImage, x, y, this);
} else {
g.drawImage(Image1, x, y, this);
}
}
public void loadImage() {
ImageIcon icon = new ImageIcon("tupian/草地.jpg");
roleImage = icon.getImage();
ImageIcon ic = new ImageIcon("tupian/right.gif");
Image1 = ic.getImage();
}
class Thread1 extends Thread {
}
/*
* private void drawRole(Graphics g) { g.drawImage(roleImage,100,100,this);
* }
*/
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_UP)
y = y - 5;
else if (e.getKeyCode() == KeyEvent.VK_DOWN)
y = y + 5;
else if (e.getKeyCode() == KeyEvent.VK_RIGHT)
x = x + 5;
else if (e.getKeyCode() == KeyEvent.VK_LEFT)
x = x - 5;
else if (e.getKeyCode() == KeyEvent.VK_ENTER)
key = !key;// 切換標(biāo)識狀態(tài)
repaint();
}
public void keyReleased(KeyEvent e) {
}
public void keyTyped(KeyEvent e) {
}
public static void main(String args[]) {
new zhandou();
}
}
這段代碼和你提的問題類似,不過這個是直接自動切換的!你只需要把自動的哪塊換個按鈕,在換個觸發(fā)事物的函數(shù)就可以了!
script
var count = 0;
var pics = new Array("a.jpg","b.jpg","c.jpg","d.jpg");
function changePic()
{
//得到img
var myPic = document.getElementById('pic');
//根據(jù)對象 修改DOM元素的屬性
myPic.src = pics[count];
count++;
if(count == pics.length)
{
count = 0;
}
//調(diào)用函數(shù)
setTimeout('changePic()',2000);
}
/script
/HEAD
BODY onload="changePic()"
img src="#" height="500" width="500" id="pic"/
/BODY
參考代碼,
注意圖片的路徑,拿不準(zhǔn)的話,就使用絕對路徑吧
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){//初始化的時(shí)候,默認(rèn)顯示的圖片
jl?=?new?JLabel(new?ImageIcon("src\\images\\"+1+".gif"));
}
//按鈕
JButton?jb?=?new?JButton("第"+(i+1)+"張圖");
int?z?=?i;
//當(dāng)按鈕點(diǎn)擊的時(shí)候
jb.addActionListener(new?ActionListener()?{
@Override
public?void?actionPerformed(ActionEvent?e)?{
//設(shè)置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();
}
}
分享題目:java中圖片切換的代碼,javascript圖片切換代碼
網(wǎng)頁鏈接:http://chinadenli.net/article35/dsecesi.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、營銷型網(wǎng)站建設(shè)、App設(shè)計(jì)、網(wǎng)站維護(hù)、ChatGPT、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)