最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Java swing圖形編程實例,設置圖片文件夾,圖片跑動和大小-《自學內容》【詩書畫唱】

2020-06-02 22:16 作者:詩書畫唱  | 我要投稿

gif透明背景圖片素材:




素材獲取方法:


筆記:


建圖片文件夾的方法:




實例一:點擊開始按鈕后單個圖片會跑動(簡易版)





package swingXianCheng;


public class mains {


public static void main(String[] args) {


new swingXianCheng();

}


}

package swingXianCheng;

import java.awt.Graphics;

import java.awt.Image;

import java.awt.Toolkit;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

public class swingXianCheng extends JFrame {

// mianBan:面板

mianBanClass mianBan=new mianBanClass();

//startAnNiu開始的按鈕

JButton startAnNiu=new JButton("開始") ;

//firstWeiYi開始的位移

int firstWeiYi=0;

//image形象

Image img=Toolkit.getDefaultToolkit().createImage("imgRun\\gif.gif");

//toolkit工具包

//swingXianCheng:swing線程

public swingXianCheng() {

startAnNiu.addActionListener (new ActionListener(){

@Override

public void actionPerformed (ActionEvent e) {

//thread線

//線程(英文:thread)

new MyThread().start();

//start()可以用以啟動線程

//start開始

}


}) ;

mianBan.add(startAnNiu) ;

add(mianBan);

setSize(900,600) ;

setLocation(200,100) ;

//operation運作

//exit退出

setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE) ;

setVisible(true) ;}

class MyThread extends Thread{

@Override

public void run() {

// firstWeiYi<=800改為true后圖片點擊開始后就會一直跑

while (firstWeiYi<=800) {

try {

Thread.sleep(100) ;

//線程休眠(暫停占用CPU)100毫秒? 主要是用于自己的軟件設置的時間問題,

//這個軟件設置不能大于2000.

//Thread sleep()休眠就是讓線程進入休眠狀態(tài)TIMED_WAITING,

//sleep("毫秒數(shù)"),當休眠時間到了之后繼續(xù)線程。

//一條線程指的是進程中一個單一順序的控制流,一個進程中可以并行多個線程,

//每條線程并行執(zhí)行不同的任務。

}?

//捕捉異常

catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace() ;}

firstWeiYi+=15;

mianBan.repaint() ;

//repaint 重繪此組件


//paintComponent()方法繪圖后, 在需要重新

//繪制圖形時,必須通過相應的事件來調

//用repaint()方法。


//component 組成部分,C++ Builder中叫組件,Delphi中叫部件,

//(簡而言之,組件就是對象。)

//C++Builder是由Borland公司推出的一款可視化集成開發(fā)工具。

//Delphi,是Windows平臺下著名的快速應用程序開發(fā)工具。

//delphi德爾斐[?d?lfi]

}

}}

//mianBanClass面板類

class mianBanClass extends JPanel{

@Override

//graphics圖形,在Java中是所有圖形上下文的抽象基類

//paint描繪

public void paint(Graphics g){

super.paint(g) ;

//draw繪制

g.drawImage (img,firstWeiYi, 50,this) ;

//g .drawImage (img,firstWeiYi,150,this) ;

//g. drawImage (img, firstWeiYi,249,this) ;

//g.drawImage (img,firstWeiYi,350,this) ;

}}}

實例二:點擊開始按鈕后多圖片會跑動,跑步幅度不同(簡易版)



package xianChengLiZiShenJI;


public class mains {


public static void main(String[] args) {


new swingXianCheng();

}


}


package xianChengLiZiShenJI;


import java.awt.Graphics;

import java.awt.Image;

import java.awt.Toolkit;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.Random;


import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;


public class swingXianCheng extends JFrame {

mianBanClass mianBan=new mianBanClass();

JButton startAnNiu=new JButton("開始") ;

//int x=30;

int[] weiYiShuZu={50,50,50,50};

Image img=Toolkit. getDefaultToolkit().

createImage("imgRun\\gif.gif");


public swingXianCheng() {

startAnNiu.addActionListener (new ActionListener(){

@Override

public void actionPerformed (ActionEvent e) {


new MyThread().start() ;

//start()可以用以啟動線程

//start開始

}


}) ;

mianBan. add(startAnNiu) ;

add(mianBan) ;

setSize(900,600) ;

setLocation(200,100) ;

setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE) ;

setVisible(true) ;}

class MyThread extends Thread{

// suiJiShu隨機數(shù)

Random suiJiShu=new Random() ;

@Override

public void run() {


// while (x<=800) {

while (true) {

try {

Thread.sleep(100) ;

//線程休眠(暫停占用CPU)100毫秒? 主要是用于自己的軟件設置的時間問題,

//這個軟件設置不能大于2000.

//Thread sleep()休眠就是讓線程進入休眠狀態(tài)TIMED_WAITING,

//sleep("毫秒數(shù)"),當休眠時間到了之后繼續(xù)線程。

//一條線程指的是進程中一個單一順序的控制流,一個進程中可以并行多個線程,

//每條線程并行執(zhí)行不同的任務。

}?

//捕捉異常

catch (InterruptedException e1) {

// TODO Auto-generated catch block

e1.printStackTrace() ;}

for(int i=0;i<weiYiShuZu. length; i++) {

weiYiShuZu[i]+=10+suiJiShu.nextInt (20);

//如果num=10+ran.nextInt (20),那么10<=num<10+20

//int[] a=new int[rand.nextint(20)+1];?

//整數(shù)范圍是[0,20)

//Java nextInt()函數(shù) nextInt(int num) 能接受一個整數(shù)作為它所產(chǎn)生的隨機整數(shù)的上限,

//下限為零,比如: nextInt(4)將產(chǎn)生0,1,2,3這4個數(shù)字中的任何一個數(shù)字,注意這里不是0-4,而是0-3。

//但下限總是零,不能更改,所以若要達到非零下限的效果,

//必須把上限減去下限的結果傳給 nextInt( ),然后把下限加入 nextInt( ) 返回的整數(shù)。

}

mianBan.repaint() ;

}

}}


class mianBanClass extends JPanel{

@Override

public void paint(Graphics g){

super .paint(g) ;

g.drawImage (img,weiYiShuZu[0], 50,this) ;

g .drawImage (img,weiYiShuZu[1],150,this) ;

g. drawImage (img,weiYiShuZu[2],249,this) ;

g.drawImage (img, weiYiShuZu[3],350,this) ;

}}}

實例三:設置圖片背景和大小,無切換,點擊按鈕后跑動。

package myGameWuQieHuan;


public class mains {


public static void main(String[] args) {


new GameJFrameClass();

}


}

package myGameWuQieHuan;

import java.awt.BorderLayout;

import java.awt.Graphics;

import java.awt.Image;

import java.awt.Toolkit;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.Random;

import javax.swing.BorderFactory;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

public class GameJFrameClass extends JFrame {

class GamePanelClass extends JPanel {

public void paint(Graphics g) {

super.paint(g);

//beiJingTuPianShuZu背景圖片數(shù)組

for (int i = 0; i < beiJingTuPianShuZu.length; i++) {

g.drawImage(beiJingTuPianShuZu[i], 0,

(getHeight() * i) / 4, getWidth(),

getHeight() / 4, this);

g.drawImage(imgRun[i], firstWeiYi[i],

(getHeight() * i) / 4 + 30,

getWidth()/8, getHeight() / 5, this);

}}

}

public static void main(String[] args) {

new GameJFrameClass();

}


Image[] beiJingTuPianShuZu = new Image[4];

Image[] imgRun = new Image[4];

GamePanelClass gamePanel = new GamePanelClass();

JPanel controlPanel = new JPanel();

JButton startButton = new JButton("開始");

int[] firstWeiYi = new int[4];

public GameJFrameClass() {

for (int i = 0; i < beiJingTuPianShuZu.length; i++) {

beiJingTuPianShuZu[i] = Toolkit.

getDefaultToolkit().createImage(

"imgBack\\" + (i+1) + ".jpg");

imgRun[i] = Toolkit.getDefaultToolkit().createImage(

"imgRun\\gif" + (i+1 ) + ".gif");

}

startButton.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

new ThreadClass().start() ;

}


});



controlPanel.add(startButton);

controlPanel.setBorder(BorderFactory.

createTitledBorder("游戲控制器"));

add(gamePanel, BorderLayout.CENTER);

add(controlPanel, BorderLayout.SOUTH);

setTitle("賽馬游戲");


setSize(1100, 600);




setLocation(150, 100);




setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


setVisible(true);




}


class ThreadClass extends Thread{

Random ran=new Random() ;

@Override

public void run() {


while (true) {


try {

Thread.sleep(100) ;


}?

catch (InterruptedException e) {

e.printStackTrace() ;}

for(int i=0;i<firstWeiYi. length; i++) {

firstWeiYi[i]+=10+ran.nextInt (20);


}

//gamePanel.repaint() ;這句代碼可有可無

//repaint 重繪此組件


//paintComponent()方法繪圖后, 在需要重新

//繪制圖形時,必須通過相應的事件來調

//用repaint()方法。

}

}}


}


Java swing圖形編程實例,設置圖片文件夾,圖片跑動和大小-《自學內容》【詩書畫唱】的評論 (共 條)

分享到微博請遵守國家法律
彭州市| 永定县| 扬中市| 疏附县| 长泰县| 田林县| 天峨县| 白水县| 哈巴河县| 晋宁县| 怀化市| 孟连| 长治县| 黄陵县| 德兴市| 包头市| 中宁县| 安泽县| 孝义市| 瓦房店市| 蓬溪县| 梅州市| 平利县| 洪洞县| 威信县| 来安县| 齐齐哈尔市| 新密市| 鹤庆县| 甘德县| 洪泽县| 定兴县| 沙坪坝区| 湟源县| 雷山县| 双峰县| 潍坊市| 布尔津县| 玉屏| 墨玉县| 汨罗市|