java實(shí)現(xiàn)潛艇大戰(zhàn)游戲源碼
更新時(shí)間:2021年06月01日 14:23:57 作者:遇見(jiàn)cy
潛艇大戰(zhàn)游戲相信大家都玩過(guò),是一款非常有趣的小游戲,那么基于代碼是如何實(shí)現(xiàn)的呢?今天小編給大家?guī)?lái)一篇教程幫助大家學(xué)習(xí)java實(shí)現(xiàn)潛艇大戰(zhàn)游戲,感謝的朋友一起看看吧
代碼如下
package com.util;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Observable;
import javax.swing.JLabel;
import javax.swing.JPanel;
/*
* 進(jìn)圖游戲的主界面面板
*/
public class MainPanel extends JPanel
{
private static final long serialVersionUID = 1L;
private MyButton startButton;
private MyButton exitButton;
private JLabel helpLabel;
private JLabel helpLabel1;
private JLabel helpLabel2;
private JLabel helpLabel3;
private Image image;
private JLabel centerlabel;
private boolean isStart;
private boolean isExit;
private Observable obs;
public MainPanel(Observable ob)
{
obs = ob;
startButton = new MyButton("進(jìn)入游戲");
exitButton = new MyButton("退出游戲");
helpLabel = new JLabel();
helpLabel1 = new JLabel();
helpLabel2 = new JLabel();
helpLabel3 = new JLabel();
centerlabel = new JLabel();
this.setLayout(new BorderLayout());
this.helpLabel.setPreferredSize(new Dimension(645,291));
this.helpLabel1.setPreferredSize(new Dimension(180,80));
this.helpLabel2.setPreferredSize(new Dimension(215,80));
this.helpLabel3.setPreferredSize(new Dimension(645,80));
this.centerlabel.setPreferredSize(new Dimension(460,80));
centerlabel.setLayout(new GridLayout(2,1));
centerlabel.add(this.startButton);
centerlabel.add(this.exitButton);
this.centerlabel.setBackground(new Color(255,255,0));
this.add(helpLabel,BorderLayout.NORTH);
this.add(helpLabel1,BorderLayout.EAST);
this.add(helpLabel2,BorderLayout.WEST);
this.add(helpLabel3,BorderLayout.SOUTH);
this.add(centerlabel,BorderLayout.CENTER);
image = Toolkit.getDefaultToolkit().getImage("imgs/主界面112.png");
// image = new ImageIcon(image).getImage();
this.startButton.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
boolean flag = true;
MainPanel.this.setIsStart(flag);
MainPanel.this.obs.notifyObservers(MainPanel.this);
}
}
);
this.exitButton.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
MainPanel.this.setExit(true);
}
}
);
}
public void paint(Graphics g)
{
super.paint(g);
Graphics2D g2 = (Graphics2D) g;
g2.drawImage(image,0,0, this.getWidth(), this.getHeight(),this);
super.paintComponents(g);
}
public boolean getIsStart()
{
return this.isStart;
}
public void setIsStart(boolean isStart)
{
this.isStart = isStart;
}
public boolean isExit() {
return isExit;
}
public void setExit(boolean isExit) {
this.isExit = isExit;
}
}
效果圖


以上就是java實(shí)現(xiàn)潛艇大戰(zhàn)游戲源碼的詳細(xì)內(nèi)容,更多關(guān)于java潛艇大戰(zhàn)游戲的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
idea maven pom不自動(dòng)更新的解決方法
這篇文章主要介紹了idea maven pom不自動(dòng)更新的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
SpringBoot整合EasyExcel實(shí)現(xiàn)大規(guī)模數(shù)據(jù)的并行導(dǎo)出與壓縮下載
在 Spring Boot 應(yīng)用中,整合 EasyExcel 實(shí)現(xiàn)并行導(dǎo)出數(shù)據(jù)并進(jìn)行 Zip 壓縮下載可以極大地提高數(shù)據(jù)處理效率和用戶體驗(yàn),文中通過(guò)代碼示例介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下2024-10-10
Springcloud Bus消息總線原理是實(shí)現(xiàn)詳解
Spring Cloud Bus 使用輕量級(jí)的消息代理來(lái)連接微服務(wù)架構(gòu)中的各個(gè)服務(wù),可以將其用于廣播狀態(tài)更改(例如配置中心配置更改)或其他管理指令,本文將對(duì)其用法進(jìn)行詳細(xì)介紹
2022-09-09
SpringBoot全局異常與數(shù)據(jù)校驗(yàn)的方法
這篇文章主要介紹了SpringBoot全局異常與數(shù)據(jù)校驗(yàn)的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
2018-11-11
如何使用IDEA從SVN服務(wù)端檢出項(xiàng)目
這篇文章主要介紹了如何使用IDEA從SVN服務(wù)端檢出項(xiàng)目問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
2023-12-12 
