我创建了一个JPanel并添加了几个简单的按钮,并附加了监听器.然后我决定将一个Image添加到我的面板的背景中,所以我将我的JPanel切换到了ImagePanel.按钮正在JPanel上工作,但现在我为要显示的背景图像添加了一堆代码,按钮不再显示.我没有更改任何按钮添加代码,所以我很困惑为什么按钮不再显示.这也发生在我单独的GameFrame类中.我在面板中添加了2个矩形组件,然后是3个按钮.对于该面板,只有按钮显示,尽管在添加按钮之前矩形工作.我可以每个面板只有一种类型的JComponent吗?我真的不明白为什么这样做.感谢您的时间.

import java.awt.Dimension;

import java.awt.Graphics;

import java.awt.Image;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

public class TitleFrame extends JFrame

{

private ImagePanel panel;

private JButton mage;

private JButton rogue;

private JButton warrior;

private Image image;

public TitleFrame()

{

JFrame frame = new JFrame();

frame.setSize(1024, 768);

frame.setTitle("Title Screen");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setVisible(true);

createMageButton();

createRogueButton();

createWarriorButton();

ImagePanel panel = new ImagePanel(new ImageIcon("C:/Users/Derek Reitz/Documents/Eclipse Projects/GameApp/src/background.jpg").getImage());

panel.add(mage);

panel.add(rogue);

panel.add(warrior);

panel.paintComponent(frame.getGraphics());

frame.getContentPane().add(panel);

}

private void createRogueButton() {

rogue = new JButton("Select Rogue");

class AddButtonListener implements ActionListener

{

public void actionPerformed(ActionEvent event)

{

moveToNextFrame('r');

}

}

ActionListener listener = new AddButtonListener();

rogue.addActionListener(listener);

}

private void createWarriorButton() {

warrior = new JButton("Select Warrior");

class AddButtonListener implements ActionListener

{

public void actionPerformed(ActionEvent event)

{

moveToNextFrame('w');

}

}

ActionListener listener = new AddButtonListener();

warrior.addActionListener(listener);

}

private void createMageButton() {

mage = new JButton("Select Mage");

class AddButtonListener implements ActionListener

{

public void actionPerformed(ActionEvent event)

{

moveToNextFrame('m');

}

}

ActionListener listener = new AddButtonListener();

mage.addActionListener(listener);

}

public void moveToNextFrame(char c)

{

GameFrame game = new GameFrame(c);

}

class ImagePanel extends JPanel

{

private Image img;

public ImagePanel(Image img) {

this.img = img;

Dimension size = new Dimension(img.getWidth(null), img.getHeight(null));

setPreferredSize(size);

setMinimumSize(size);

setMaximumSize(size);

setSize(size);

setLayout(null);

}

public void paintComponent(Graphics g) {

g.drawImage(img, 0, 0, null);

}

}

}

java 多个 panel_在Java中,每次我向JPanel添加多个东西时,第二...相关推荐

  1. Java模拟登陆,将文件中的单词自动添加到扇贝生词本

    package autoAdd2扇贝;import java.io.BufferedReader; import java.io.FileReader; import java.io.IOExcept ...

  2. java定时执行sql语句_spring中使用quartz动态添加定时任务执行sql

    系统用来每天插入视图数据... 一.数据库表设计 1.接口配置表(t_m_db_interface_config) 2.接口日志表(t_m_db_interface_log) 3.前端配置页面 查询页 ...

  3. java 密码提交前判断_JSP中如何写密码输入和核实密码时正确与否的Java判断代码?...

    jsp中判断两次输入的密码是否相同的方法是通过js实现的. 在两个文本框里添加onchange事件,在文本框的内容一发生变化时就触发该事件,而判断就写在这个事件之内就可以了. function che ...

  4. java spring scope_如何在Spring中自定义scope的方法示例

    大家对于 Spring 的 scope 应该都不会默认.所谓 scope,字面理解就是"作用域"."范围",如果一个 bean 的 scope 配置为 sing ...

  5. Java:new一个对象的过程中发生了什么?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:沉默哥 cnblogs.com/JackPn/p/93861 ...

  6. java单例模式的实现方法_Java中的五种单例模式实现方法

    Ext4 ComboBox组件使用 先来看例子: Ext.define('schoolModel', { extend: 'Ext.data.Model', fields: [{ name: 'id' ...

  7. java i 线程不安全_java中的++i是线程安全的吗?

    java中的++i是线程安全的吗?为什么?怎么使它线程安全呢? 先说答案: 非线程安全 先说下为什么是非线程安全的? 从Java内存模型说起 Java内存模型规定了所有的便利都存储在主内存中,每个线程 ...

  8. Java基础之写文件——缓冲区中的多条记录(PrimesToFile3)

    控制台程序,上一条博文(PrimesToFile2)每次将一个素数写入到文件中,所以效率不是很高.最好是使用更大的缓冲区并加载多个素数. 本例重复使用三个不同的视图缓冲区加载字节缓冲区并尽可能加入更多 ...

  9. Java常用的知识点就20_JAVA中一些需要记录的知识点

    原标题:JAVA中一些需要记录的知识点 的老师今天给大家讲java中一些重要的知识点. JDK与JRE的区别: JRE是所有JAVA程序运行所需要的环境,任何JAVA程序的运行都依赖于JRE,当前从J ...

最新文章

  1. [JAVA EE]Spring Boot 控制层:参数传递方法
  2. craigslist_Craigslist,Wikipedia和丰富经济
  3. 数据库诞生40年,阿里云AWS用技术推动第三次变革
  4. CapsLock Enhancement via AutoHotKey
  5. PHP之星际设计模式下(转自lightsaber)
  6. NOIP2016洛谷P1600:天天爱跑步
  7. Linux的开源免费办公软件,开源免费Office办公套件(LibreOffice)
  8. c语言使用小技巧之读取图片路径和label
  9. 关于JSTL的简单说明
  10. 深入理解计算机系统(2.4)---C语言的有符号与无符号、二进制整数的扩展与截断...
  11. 幼儿园案例经验迁移_共教研,促成长阳光天健城幼儿园9月份教研分享
  12. ubuntu16.04中创建新用户
  13. 通配符星号(*)和问号(?)的区别
  14. 帝国cms 多值字段在投稿表单中的样式设置
  15. 社保已经交够15年了,还需要再交吗?到退休年龄时可以退休吗?
  16. k--最近邻算法(KNN)
  17. 架构师之路工作量化与细化
  18. layui解决数据表格右侧有空白现象
  19. 电子设计常识——阻抗
  20. mysql将时间戳转换成日期_mysql 中查询时如何将时间戳转换为日期格式 / 日期格式转换为时间戳...

热门文章

  1. 【Linux】13_ 文件查找
  2. python 标准差Std() 参数决定有偏或无偏
  3. 携程基于云的软呼叫中心及客服平台架构实践
  4. 现代前端开发路线图:从零开始,一步步成为前端工程师
  5. 快速定位java系统的线上问题--转
  6. mysql表名查询sql
  7. spring websocket源码分析
  8. HDFS集中式的缓存管理原理与代码剖析--转载
  9. 指向函数的指针--转
  10. Xcode执行Analyze静态分析