java 关闭jpanel_从JFrame [Java]关闭JPanel窗口
所以,我想制作一个带有JPanel的菜单屏幕,我让它工作,但是当我按下“开始”按钮时,它没有关闭菜单窗口,它只是打开一个新窗口,我该怎么做,保持它在同一个窗口,没有关闭/打开菜单窗口,或者我想关闭菜单窗口并打开游戏窗口(JPanel),当我按下开始按钮 .
这是MainClass.java
package bombermangame;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MainClass extends JFrame{
private static final long serialVersionUID = 1L;
public static int WIDTH = 870, HEIGHT = 800;
public static JPanel menu = new Menu();
public static Listener keys = new Listener();
public MainClass(){
setContentPane(menu);
pack();
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("BomberMan V0.3");
setSize(WIDTH, HEIGHT);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
new MainClass();
}
}
这是Menu.java类
package bombermangame;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Menu extends JPanel implements ActionListener {
private static final long serialVersionUID = 1L;
private JButton startButton = new JButton("Play");
private int x = 0, y = 500;
private boolean down = false;
private boolean up = true;
private Timer timer = new Timer();
public Menu() {
setBackground(Color.blue);
startButton = new JButton("Start");
startButton.setBounds(0,0, 100, 40);
startButton.setPreferredSize(new Dimension(100, 40));
startButton.addActionListener(this);
startButton.setFocusPainted(true);
this.add(startButton);
public void actionPerformed(ActionEvent ae) {
Object a = ae.getSource();
Game game = new Game();
MainClass frm = new MainClass();
Listener keys = new Listener();
if (a == startButton) {
timer.cancel();
frm.getContentPane().remove(new Menu());
frm.addKeyListener(keys);
frm.setContentPane(game);
frm.revalidate();
frm.repaint();
game.setBackground(Color.BLACK);
game.setDoubleBuffered(true);
game.setBounds(0, 0, WIDTH, HEIGHT);
Game.running = true;
}
}
}
编辑:感谢@whiskeyspider的帮助,我了解到我制作了2帧并没有正确引用它们 . 但是现在我已经解决了,我的监听器出现了问题,当我修复它时,我的Jpanel将无法使用我的监听器 . 我已经尝试将Listener直接添加到我的Game JPanel和我的MainClass JFrame中,但两者都不会起作用 .
这是我的一些菜单类,
public void actionPerformed(ActionEvent ae) {
Object a = ae.getSource();
JPanel game = new Game();
Listener keys = new Listener();
if (a == startButton) {
timer.cancel();
MainClass.frame.getContentPane().remove(this);
MainClass.frame.setContentPane(game);
MainClass.frame.addKeyListener(keys);
game.addKeyListener(keys);
game.setBackground(Color.BLACK);
game.setDoubleBuffered(true);
game.setBounds(0, 0, WIDTH, HEIGHT);
Game.running = true;
}
}
java 关闭jpanel_从JFrame [Java]关闭JPanel窗口相关推荐
- java 关闭jpanel_如何在Java中关闭Jpanel程序
我正在制作一个Java游戏,我需要一些关于如何操作的建议.如何在Java中关闭Jpanel程序 目前我使用2个不同的.java文件来制作游戏.我有一个扩展JFrame的主程序,我调用扩展JPanel的 ...
- java中打开的线程怎么关闭_[求助] 用线程怎么关闭运行中的窗口
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 package testOfProject; import javax.swing.*; import java.awt.*; import java.a ...
- java菜单面板设置完能关闭_用Java创建一个屏幕外框架(或者:当所有应用程序窗口关闭时,如何避免Mac上的空白菜单)?...
你一定要考虑WizardOfOdds非常有用的答案.正确使用 "The Application Menu"将有所帮助,并且很容易设置最小的 Info.plist开始.持久的文件菜单 ...
- Java实现雪景图-Java项目实践学习-涉及Jframe/Jpanel等
用Java写个简单的雪景图吧 [适合用来练手的小项目] 效果如下: 第一步 我们用idea创建一个名为Demo_snow的项目吧: 在src下创建一个包: 给包取好名: 在包里面创建两个java文件: ...
- java创建的窗口无法关闭_在Java中添加canvas后无法关闭窗口(Can't close window after adding canvas in Java)...
在Java中添加canvas后无法关闭窗口(Can't close window after adding canvas in Java) public class Screen extends Ca ...
- Android系统原理与源码分析(1):利用Java反射技术阻止通过按钮关闭对话框
原文出处:博主宇宙的极客http://www.cnblogs.com/nokiaguy/archive/2010/07/27/1786482.html 众所周知,AlertDialog类用于显示对话框 ...
- java中io各种流的关闭顺序
关闭该流并释放与之关联的所有资源.在关闭该流后,再调用 read().ready().mark().reset() 或 skip() 将抛出 IOException.关闭以前关闭的流无效. publi ...
- socket java 发送多次 socket 已关闭_Socket客户端循环发送多条信息给服务端,发一次socket自动关闭?...
目的:通过Socket客户端发送多条数据给服务端 错误: 我是客户端0,服务器说:欢迎您! java.net.SocketException: Socket is closed at java.net ...
- java关闭通道_调用map方法后,Java 7文件通道未正确关闭
我正在研究一个sc2replay解析工具.我在MPQLIB http://code.google.com/p/mpqlib/之上构建它 不幸的是,该工具使用文件通道来读取bzip文件, 并使用map( ...
最新文章
- 管理云栈将会胜出吗?
- shell脚本中常见的一些特殊符号和作用详解
- 移动、联通、电信7模4G全网通
- 【转】家庭装修预算计算公式大全
- jzoj3410-[GDOI2014模拟]Tree【最小生成树,贪心】
- DecimalFormat很强大
- Device eth0 does not seem to be present,delaying initialization的解决办法
- 用Java实现HTTP Multipart的服务端和客户端
- 数据库一些开发者了解的操作
- Ubuntu 16.04 安装VNC服务端
- Redis 经典 必问21问,BAT面试都会问,你会回答吗?
- 软考论文写作方法及规范
- 21. 合并两个有序链表
- 在线IDE 在线编辑器
- 数字电路设计之低功耗设计方法六:旁路(by-passing)
- kotlin 属性重载
- amazon alexa simple demo code for libcurl
- Java程序员的魔法杖-Arthas 3.1.2版本发布了
- 量子技术将如何颠覆未来战争形态
- 干货!老司机带你了解网易视频云互动直播,你想看的全都有
热门文章
- 魔方CRM 客户关系管理源码
- 知识点-读取文件read(), readline(), readlines(),writelines()和去重set()
- 给所有前端使用的图片处理工具
- 安装jieba库方法
- 阿里巴巴如何对抗淘宝双11亿级流量?这本P9纯手打并发手册送给你
- 使用 DMV 进行监视_监视连接_针对 Azure SQL 数据库和 Azure SQL 托管实例进行手动性能优化
- 用keil刚打开项目后,跳出的与pdsc文件相关的错误解决方法
- cf837E(xjb)
- 使用 PHP PDO ODBC 示例的 Microsoft Access 数据库
- AlphaGo打星际,人类的胜算几何?