如何在Eclipse中运行一个GUI程序

如何在Eclipse中运行一个GUI程序,第1张

例毕巧如创建一个最简单的GUI程序,新建一个 java 工程,添加一个class, 类名为 App, 添加如下代码:

// 文件名 App.java

// 最简的GUI程序

import javax.swing.JFrame

public class App extends JFrame {

private static final long serialVersionUID 笑数祥= 1L

public App() {

this.setTitle("最简单的GUI程序")

this.setSize(300, 200)

this.setLocationRelativeTo(null)

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

}

public static void main(String args[]) {

new App().setVisible(true)

}

}

然的运行。

运行结果:碰搏

importjava.awt.*

importjavax.swing.*

importjava.awt.event.*

importjava.util.*

publicclassSnakeGameextendsJFrameimplementsKeyListener{

privateintstat=1,direction=0,bodylen=6,headx=7,heady=8,

tailx=1,taily=8,tail,foodx,foody,food//初始化定义变量碰族

publicfinalintEAST=1,WEST=2,SOUTH=3,NORTH=4//方向常量

int[][]fillblock=newint[20][20]//定义蛇身所占位置

publicSnakeGame(){//构造函数

super("贪吃蛇")

setSize(510,510)

setVisible(true)//设定窗口属性

addKeyListener(this)//添加监听

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

for(inti=1i<=7i++)fillblock[i][8]=EAST//初始化蛇身属性

direction=EAST//方向初始化的设颂正置

FoodLocate()//定位食物

while(stat==1){

fillblock[headx][heady]=direction

switch(direction){

case1:headx++break

case2:headx--break

case3:heady++break

case4:heady--break

}//蛇头的前进

if(heady>19||headx>19||tailx>19||taily>19||heady<0||headx<笑樱弊0||tailx<0||taily<0||fillblock[headx][heady]!=0){

stat=0

break

}//判断游戏是否结束

try{

Thread.sleep(150)}

catch(InterruptedExceptione){}//延迟

fillblock[headx][heady]=direction

if(headx==foodx&&heady==foody){//吃到食物

FoodLocate()

food=2

try{

Thread.sleep(100)}

catch(InterruptedExceptione){}//延迟

}

if(food!=0)food--

else{tail=fillblock[tailx][taily]<br/>fillblock[tailx][taily]=0//蛇尾的消除<br/>switch(tail){<br/>case1:tailx++break<br/>case2:tailx--break<br/>case3:taily++break<br/>case4:taily--break<br/>}//蛇尾的前进

}

repaint()

}

if(stat==0)

JOptionPane.showMessageDialog(null,"GAMEOVER","GameOver",JOptionPane.INFORMATION_MESSAGE)

}

publicvoidkeyPressed(KeyEvente){//按键响应

intkeyCode=e.getKeyCode()

if(stat==1)switch(keyCode){

caseKeyEvent.VK_UP:if(direction!=SOUTH)direction=NORTHbreak

caseKeyEvent.VK_DOWN:if(direction!=NORTH)direction=SOUTHbreak

caseKeyEvent.VK_LEFT:if(direction!=EAST)direction=WESTbreak

caseKeyEvent.VK_RIGHT:if(direction!=WEST)direction=EASTbreak

}

}

publicvoidkeyReleased(KeyEvente){}//空函数

publicvoidkeyTyped(KeyEvente){}//空函数

publicvoidFoodLocate(){//定位食物坐标

do{

Randomr=newRandom()

foodx=r.nextInt(20)

foody=r.nextInt(20)

}while(fillblock[foodx][foody]!=0)

}

publicvoidpaint(Graphicsg){//画图

super.paint(g)

g.setColor(Color.BLUE)

for(inti=0i<20i++)

for(intj=0j<20j++)

if(fillblock[i][j]!=0)

g.fillRect(25*i+5,25*j+5,24,24)

g.setColor(Color.RED)

g.fillRect(foodx*25+5,foody*25+5,24,24)

}

publicstaticvoidmain(String[]args){//主程序

SnakeGameapplication=newSnakeGame()

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/yw/12420256.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存