我弄了个游戏win7启动菜单编辑,但是每次点一个游戏后,菜单自动...

96U手游网--最好玩的手机游戏网站!
当前位置:
> 在DNF公众平台中,要进入“腾讯游戏帮帮”页面,该点击哪个菜单栏?
在DNF公众平台中,要进入“腾讯游戏帮帮”页面,该点击哪个菜单栏?
在DNF公众平台中,要进入“腾讯游戏帮帮”页面,该点击哪个菜单栏? 1.勇士营地之一周新看点 2.勇士助手 3.勇士营地之游戏攻略(答题格式DNF+***,如***是3,则输入DNF3)今天是12月20号咯,大家知道这道题目的***吗?与勇士每日一题***由小编给大家带来,不知道***的朋友看图片下面噢,有***……
在DNF公众平台中,要进入“腾讯游戏帮帮”页面,该点击哪个菜单栏?
1.勇士营地之一周新看点 2.勇士助手 3.勇士营地之游戏攻略
本站为防止低俗内容出现,用户发表的评论需经过审核,谢谢 !
查看更多 ↓
新年大礼包剩余:0%
新年大礼包剩余:0%
新年大礼包剩余:0%
新年大礼包剩余:0%
新年大礼包剩余:0%我想做一个游戏菜单,不知道如何实现面板的切换 - ITeye问答
import java.awt.*;
import java.awt.font.*;
import java.awt.event.KeyE
import java.awt.event.KeyL
import java.io.F
import java.io.IOE
import java.util.V
import javax.imageio.ImageIO;
import javax.swing.*;
public class playMenu extends JPanel implements KeyListener, Runnable{
//selected变量标记了焦点位置
private int selected = 0;
private int preferWidth = 0;
private int preferHeight = FONTHEIGHT;
public static final int FONTHEIGHT=32;
public static final int[] OPTIONS = {0,1,2,3};
public static final String[] LABELS={"New Game","Setttings","High Scores","Exit"};
public playMenu(){&
//计算菜单选项的长度和高度值
for(int i = 0;i&LABELS.i++){
int temp = LABELS[i].length();
if(temp & preferWidth){
preferWidth =
public void paintComponent(Graphics g){
super.paintComponent(g);
//设置字体
Font f = new Font("Times New Roman", Font.BOLD + Font.ITALIC, FONTHEIGHT);
g.setFont(f);
g.fillRect(0,0,this.getWidth(),this.getHeight());
g.setColor(Color.WHITE);
//计算整个菜单的高度,宽度和(x,y)
int rectWidth = (preferWidth + 2*4);
int rectHeight = preferHeight * LABELS.
int x = (this.getWidth()-rectWidth)/2;
int y = (this.getHeight()-rectHeight)/2;
System.out.println(rectWidth);
//画菜单选项,并根据selected的值判断焦点
for(int j = 0;j&LABELS.j++){
g.setColor(Color.BLACK);
if(selected == j){
g.setColor(Color.YELLOW);
//宽2,高为选项高度减1;
g.fillRect(x-4,y+j*preferHeight+1,2,preferHeight-1);
//还原画笔颜色为黑色
g.drawString(LABELS[j],x+4,y+(j+1)*preferHeight);
public void keyPressed(KeyEvent e){
//根据用户输入更新selected的值,并重新绘制屏幕
if(e.getKeyCode()==KeyEvent.VK_DOWN)//响应向下键
selected = (selected+1)%4;
}else if(e.getKeyCode()==KeyEvent.VK_UP)//响应向上键
if(--selected & 0){
selected+=4;
}else if(e.getKeyCode()==KeyEvent.VK_ENTER)//响应回车键
printLabel(selected);
switch(selected)
//切换进入游戏主面板如何实现?
repaint();
//serviceRepaints();
//showNotify()在paint()之前被调用
public void showNotify(){
System.out.println("showNotify() is called");
private void printLabel(int selected){
System.out.println(LABELS[selected]);
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
public void run() {
// TODO Auto-generated method stub
说明:
在主窗体启动该菜单面板代码如下:
mfp=new playMenu();&&&&&&
//组件以堆栈的方式添加入容器
Container contentPane = getContentPane();
contentPane.add(mfp);
//开启线程
Thread tpm=new Thread(mfp);
tpm.start();
//设置***
this.addKeyListener(mfp);
现在希望实现当选择菜单中的"new game"选项后,按回车时切换到新的游戏面板上的功能。不知道如何实现!望指教
抽象的说,就是在一个已经定义为线程的面板中,能否实现为响应某个键盘事件而终止自己的线程,然后新建一个面板线程的功能?如果不能,怎么让主窗体知道这一发生在面板上的事件,并终止前面的面板线程,然后新建新的面板线程?
我觉得你可以在你的子线程里面放入对主线程的引用,哪么这样不就能实现和主线程通行了吗?至于接下来你想干什么,那就想怎么搞就怎么搞啊。
已解决问题
未解决问题

参考资料

 

随机推荐