「java按钮游戏」游戏按钮教程

博主:adminadmin 2022-12-18 23:33:05 54

今天给各位分享java按钮游戏的知识,其中也会对游戏按钮教程进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java游戏开发,怎么实现点击按钮进入游戏

我觉得可以这样:

假设欢迎界面用的是一个JPanel 叫WelcomePanel

游戏界面用的是一个GamePanel

开始按钮在WelcomePanel内,点击后调用JFrame的移除方法移除WelcomePanel,并添加GamePanel

以前写游戏的时候到从来没用过你这种思想,一般都是搞一个狭长的MenuPanel在傍边,

像开始游戏,暂停之类的功能按钮都写在那一个panel里面。

JAVA 我想在界面按钮里(开始游戏)按一下就可以进入游戏..该怎麼辨?十分紧急!

把按钮添加当前JFrame(也就是你这里的Exam_s5s17)为监听者,把Exam_s5s17实现ActionListener接口, 最后在事件处理方法(actionPerformed)里面写 按钮被点击,关闭当前面板打开开始游戏后的面板(也就是new 一个开始游戏后的面板) 因为你这里也没给其他的代码,所以我也不知道怎么具体写给你, 只能给你讲步骤。不知道我说的 是不是你想要的

用JAVA编一个带按钮边框的游戏,程序少点,谢谢了。

//我做的一个简单的拼图游戏

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.EventQueue;

import java.awt.Font;

import java.awt.event.ComponentAdapter;

import java.awt.event.ComponentEvent;

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import javax.swing.DefaultComboBoxModel;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JList;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JTextField;

import javax.swing.SwingConstants;

import javax.swing.border.LineBorder;

public class Pingtu extends JFrame implements MouseListener,KeyListener{

private static final long serialVersionUID = 1L;

private JList listResult;

private JPanel panMain;

private JPanel panGame;

private JPanel panRight;

private DefaultComboBoxModel dcbm;

private JTextField txtCount;

private JTextField txtLevel;

private JLabel [][] labels;

private final int MAX_LEVEL = 10;

private int[][] nums;

private int level;

private long clickCount = 0L;

/**

* Create the frame

*/

public Pingtu() {

super();

addComponentListener(new ComponentAdapter() {

public void componentResized(final ComponentEvent e) {

JFrame jf = (JFrame)e.getSource();

if(jf.getHeight()400) jf.setSize(jf.getWidth(),400);

if(jf.getWidth()600) jf.setSize(600,jf.getHeight());

panRight.setBounds(jf.getWidth()-panRight.getWidth()-10,10,panRight.getWidth(),jf.getContentPane().getHeight()-20);

panGame.setBounds(10,10,jf.getWidth()-panRight.getWidth()-30,jf.getContentPane().getHeight()-20);

listResult.setSize(listResult.getWidth(), panRight.getHeight()-listResult.getY()-10);

}

});

setName("frmMain");

setTitle("拼图");

setBounds(100, 100, 579, 438);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

panMain = new JPanel();

panMain.setLayout(null);

getContentPane().add(panMain, BorderLayout.CENTER);

panGame = new JPanel();

panGame.setLayout(null);

panGame.setBounds(10, 10, 358, 385);

panMain.add(panGame);

panRight = new JPanel();

panRight.setBackground(Color.CYAN);

panRight.setLayout(null);

panRight.setBounds(374, 10, 187, 385);

panMain.add(panRight);

txtLevel = new JTextField();

txtLevel.setText("3");

txtLevel.setBounds(62, 43, 87, 22);

panRight.add(txtLevel);

final JLabel label = new JLabel();

label.setText("行数:");

label.setBounds(10, 45, 39, 18);

panRight.add(label);

final JButton btnStart = new JButton();

btnStart.addMouseListener(new MouseAdapter() {

public void mouseReleased(final MouseEvent e) {

newGame();

}

});

btnStart.setText("开始");

btnStart.setBounds(10, 95, 73, 22);

panRight.add(btnStart);

final JLabel labCount = new JLabel();

labCount.setText("步数:");

labCount.setBounds(10, 176, 39, 18);

panRight.add(labCount);

txtCount = new JTextField();

txtCount.setBounds(62, 174, 87, 22);

panRight.add(txtCount);

dcbm = new DefaultComboBoxModel();

listResult = new JList();

listResult.setModel(dcbm);

listResult.setBounds(13, 245, 164, 130);

panRight.add(listResult);

final JLabel labResult = new JLabel();

labResult.setText("结果:(级别 每局步数)");

labResult.setBounds(10, 221, 167, 18);

panRight.add(labResult);

newGame();

//

}

public boolean newGame(){

boolean rs = false;

try{

level = Integer.parseInt(txtLevel.getText());

if(level 2 || level MAX_LEVEL){

JOptionPane.showMessageDialog(this, "请输入大于2且小于" + MAX_LEVEL + "的数值.");

rs=false;

}

nums = new int[level][level];

for(int i = 0;ilevel;i++)

for(int j =0;jlevel;j++){

nums[i][j] = i*level+j +1;

}

nums[level-1][level-1] = 0;

randomNums();

creatNewLabel();

}catch (NumberFormatException e) {

JOptionPane.showMessageDialog(this, "请输入整数!");

rs = false;

}

return rs;

}

public void creatNewLabel() {

panGame.removeAll();

panGame.repaint();

int len =( panGame.getWidth()panGame.getHeight() ? panGame.getHeight() : panGame.getWidth()) / level;

labels =new JLabel[level][level];

for(int i = 0;ilevel;i++)

for(int j =0;jlevel;j++){

labels[i][j] = new JLabel();

labels[i][j].setFont(new Font("Arial", Font.BOLD, len/2));

labels[i][j].setHorizontalTextPosition(SwingConstants.CENTER);

labels[i][j].setHorizontalAlignment(SwingConstants.CENTER);

labels[i][j].setBorder(new LineBorder(Color.black, 1, false));

labels[i][j].setBounds(j*len, i*len, len, len);

if(nums[i][j] != 0)labels[i][j].setText(""+nums[i][j]);

else labels[i][j].setText("");

labels[i][j].addMouseListener(this);

labels[i][j].setOpaque(true);

labels[i][j].setBackground(Color.lightGray);

panGame.add(labels[i][j]);

}

clickCount = 0L;

txtCount.setText("0");

}

/**

* Launch the application

* @param args

*/

public static void main(String args[]) {

EventQueue.invokeLater(new Runnable() {

public void run() {

try {

Pingtu frame = new Pingtu();

frame.setVisible(true);

} catch (Exception e) {

e.printStackTrace();

}

}

});

}

public void mouseClicked(MouseEvent e) {

}

public void mouseEntered(MouseEvent e) {

if(e.getSource().getClass().equals(labels[0][0].getClass())){

((JLabel) e.getSource()).setBackground(Color.orange);

}

}

public void mouseExited(MouseEvent e) {

if(e.getSource().getClass().equals(labels[0][0].getClass())){

((JLabel) e.getSource()).setBackground(Color.lightGray);

}

}

public void mousePressed(MouseEvent e) {

}

public void mouseReleased(MouseEvent e) {

if(e.getSource().getClass().equals(labels[0][0].getClass())){

JLabel lab =(JLabel) e.getSource();

int i = lab.getY() / lab.getWidth();

int j = lab.getX() / lab.getWidth();

if(i0 nums[i-1][j]==0){

labels[i-1][j].setText(lab.getText());

labels[i][j].setText("");

nums[i-1][j] = nums[i][j];

nums[i][j] = 0;

clickCount++;

}

else if(ilevel-1 nums[i+1][j]==0){

labels[i+1][j].setText(lab.getText());

labels[i][j].setText("");

nums[i+1][j] = nums[i][j];

nums[i][j] = 0;

clickCount++;

}

else if(j0 nums[i][j-1]==0){

labels[i][j-1].setText(lab.getText());

labels[i][j].setText("");

nums[i][j-1] = nums[i][j];

nums[i][j] = 0;

clickCount++;

}

else if(jlevel-1 nums[i][j+1]==0){

labels[i][j+1].setText(lab.getText());

labels[i][j].setText("");

nums[i][j+1] = nums[i][j];

nums[i][j] = 0;

clickCount++;

}

if( checkNums()){

JOptionPane.showMessageDialog(this, "恭喜你过关!\r\n你点击次数是:" + clickCount);

dcbm.addElement(""+level+" " + clickCount);

//(DefaultListModel)listResult.getModel();//.add(new JLabel(""+level+" " + clickCount));

newGame();

}

txtCount.setText(""+clickCount);

}

}

private boolean checkNums() {

for(int i = 0;ilevel;i++)

for(int j =0;jlevel;j++){

if( (i*level+j != level*level-1) nums[i][j] != i*level+j +1 ){

return false;

}

}

return true;

}

public void randomNums(){

int x1=0,y1=0, x2=0,y2=0,tem=0;

for(int i = 0; ilevel*level;i++){

x1 =(int)(Math.random()*level);

y1 =(int)(Math.random()*level);

x2 =(int)(Math.random()*level);

y2 =(int)(Math.random()*level);

tem = nums[x1][y1];

nums[x1][y1] = nums[x2][y2];

nums[x2][y2] = tem;

}

}

public void keyPressed(KeyEvent e) {

System.out.println(e.getKeyCode());

}

public void keyReleased(KeyEvent e) {

System.out.println(e.getKeyCode());

}

public void keyTyped(KeyEvent e) {

System.out.println(e.getKeyCode());

}

}

关于java按钮游戏和游戏按钮教程的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-18,除非注明,否则均为首码项目网原创文章,转载请注明出处。