当我第一次学习Java时,我们必须使Yahtzee,我认为创建自定义的Swing组件和容器,而不是只是绘制一切在一个JPanel是很酷。扩展Swing组件的好处当然是能够添加对键盘快捷方式和其他辅助功能的支持,这是您无法通过使用paint()方法打印漂亮的图片。这可能不是最好的方法,但它可能是一个很好的起点。

编辑8/6 – 如果从图像不是很明显,每个Die是一个按钮,你可以单击。这将把它移动到下面的DiceContainer。看看源代码,你可以看到每个Die按钮是动态绘制的,基于它的值。

以下是基本步骤:

>创建一个扩展JComponent的类

>在构造函数中调用父构造函数super()

>确保你的类实现了MouseListener

>把它放在构造函数中:

enableInputMethods(true);

addMouseListener(this);

>覆盖这些方法:

public Dimension getPreferredSize()

public Dimension getMinimumSize()

public Dimension getMaximumSize()

>覆盖此方法:

public void paintComponent(Graphics g)

绘制按钮时必须处理的空间量由getPreferredSize()定义,假设getMinimumSize()和getMaximumSize()返回相同的值。我没有做过太多的实验,但是,根据你使用的GUI你的按钮可以看起来完全不同的布局。

最后,source code.如果我错过了任何东西。

java实现按钮名字自定义_在Java中创建自定义按钮相关推荐

  1. windows快捷键自定义_在Windows中创建自定义Windows键盘快捷键

    windows快捷键自定义 Nearly everyone uses keyboard shortcuts of some sort on their Windows system but what ...

  2. java数组给名字排序_用Java给数组排序

    public class BubbleDemo { public static void main(String[] args) { int arr[]={1,3,5,7,2,4,6,8,9}; bu ...

  3. activiti自定义_在Activiti中执行自定义查询

    activiti自定义 (这可能最终会出现在Activiti 5.15版本的用户指南中,但是我已经想要共享它了) Activiti API允许使用高级API与数据库进行交互. 例如,对于检索数据,查询 ...

  4. fritzing导入元件_在Fritzing中创建自定义元件

    Fritzing是一个开源的原型制作平台,用户可通过此软件轻松创建电路.与其他免费电路设计工具(比如Eagle或KiCAD EDA)相比,Fritzing的主要优势是能够在"面包板" ...

  5. html5创建自定义标签,在html中创建自定义标签

    创建并使用自定义标签 Web Components 标准非常重要的一个特性是,它使开发者能够将HTML页面的功能封装为 custom elements(自定义标签),本篇介绍使用 CustomElem ...

  6. 【源码+图片素材】Java王者荣耀游戏开发_开发Java游戏项目【王者荣耀】1天搞定!!!腾讯游戏_Java课程设计_Java实战项目_Java初级项目

    王者荣耀是当下热门手游之一,小伙伴们是否想过如何制作一款属于自己的王者荣耀游戏呢? 本课程讲解了一个王者荣耀游戏的详细编写流程,即使你是刚入门Java的新手,只要你简单掌握了该游戏所需要的JavaSE ...

  7. hive 元数据 自定义_如何在Hive中创建自定义函数UDF及如何直接通过Impala的同步元数据重用UDF的jar文件-阿里云开发者社区...

    如何在Hive中创建自定义函数UDF及使用 如何在Impala中使用Hive的自定义函数 UDF函数开发 使用Intellij工具开发Hive的UDF函数,进行编译: 1.使用Intellij工具通过 ...

  8. 微软word开机自启动_如何在Microsoft Word中创建自定义封面

    微软word开机自启动 A great cover page draws in readers. If you use Microsoft Word, you're in luck, because ...

  9. 网易蜂巢 mysql镜像_在网易蜂巢的容器中创建自定义镜像和推送本地镜像的教程...

    Dockerfile 创建自定义镜像1.  登录蜂巢控制台:https://c.163.com/dashboard 2.  点击左侧导航菜单的「镜像仓库」标签: 3.  点击镜像仓库列表左上角的「创建 ...

  10. android studio 自定义字体,Android Studio中的自定义字体

    如何在android studio中创建自定义字体? 我试图使用自定义字体,我读过,我想将字体放在资产/字体. 我已经搜索了很长时间,但很难找到帮助. 我哪里错了?我真的不知道该怎么做. 我写下了所有 ...

最新文章

  1. 持续集成之路——Maven
  2. STM32学习笔记(七) ADC模数转换测电平(普通和DMA模式)
  3. linux 查看语言环境_Linux语言环境版本查看shell脚本
  4. GitHub标星2.6万!Python算法新手入门大全
  5. Skaffold:让K8S开发工作变得简单
  6. 实践 | Element UI + Vue 管理系统首页
  7. 过滤器、监听器常见应用(源码解析)
  8. [R时间序列]ARMA模型如何分辨拖尾与截尾
  9. L1-032 Left-pad (20 分)—团体程序设计天梯赛
  10. 综述: 通信雷达一体化中的信号处理
  11. html多重阴影,求问:CSS3多重阴影效果实现的问题。为什么没有任何的效果,怎么改颜色都没用。...
  12. 给自己职业发展的建议
  13. mysql练习题记录之:学生表、课程表、成绩表、讲师表、等级表
  14. 2022.7.19 防火墙知识点
  15. ShaderLearning_1_理论渲染管线和GPU渲染管线
  16. Android应用开发-小巫CSDN博客客户端之显示博文详细内容
  17. 小榕SQL注入工具使用
  18. 查看服务器php版本?
  19. idea中重新加载新的依赖方法
  20. 一个grpcServer实现多个proto文件

热门文章

  1. 阿里云 IP 地理位置库(淘宝IP库)实践(前篇)
  2. PowerBuilder技巧和窍门
  3. 国内著名杀毒软件厂商江民公司的主页遭到黑客攻击
  4. 动态规划 多重背包问题
  5. 由拖库攻击谈口令字段的加密策略
  6. LinuxProbe学习笔记(十二)
  7. 【Python算法系列十一】二叉树的3种遍历方式
  8. 镜像与分光的区别(转)
  9. 互动视频脚本 : 电子类的短视频
  10. JDBC驱动类型(详细讲述):