当前位置: 首页 > 面试题库 >

在Java中创建自定义JButton

百里意智
2023-03-14
问题内容

有没有一种方法可以JButton用您自己的按钮图形而不是仅在按钮内部创建图像?

如果没有,是否还有另一种方法可以JButton在Java中创建自定义?


问题答案:

当我第一次学习Java时,我们不得不制造Yahtzee,我认为创建自定义的Swing组件和容器会很酷,而不仅仅是在一个组件上绘制所有内容JPanel。Swing当然,扩展组件的好处是能够添加对键盘快捷键和其他辅助功能的支持,而仅通过一种paint()方法打印漂亮的图片就无法做到。但是,它可能不是最佳方法,但对您来说可能是一个很好的起点。

编辑8/6-如果从图像中看不到,则每个“模具”都是可以单击的按钮。这会将其移至DiceContainer下方。查看源代码,您可以看到每个Die按钮都是基于其值动态绘制的。

基本步骤如下:

  1. 创建一个扩展的类 JComponent
  2. super()在构造函数中调用父构造函数
  3. 确保您对工具进行分类 MouseListener
  4. 把它放在构造函数中:
enableInputMethods(true);   
addMouseListener(this);

覆盖以下方法:

public Dimension getPreferredSize()  
public Dimension getMinimumSize()  
public Dimension getMaximumSize()

覆盖此方法:

public void paintComponent(Graphics g)

绘制按钮时必须使用的空间量由定义getPreferredSize(),并假定getMinimumSize()并getMaximumSize()返回相同的值。我没有对此进行过多的尝试,但是,根据您用于GUI的布局,按钮的外观可能会完全不同。



 类似资料:
  • 在一次采访中,我最近被问到以下问题: 有没有其他方法可以创建自定义的,而不使用: 扩展异常类或的子类,用于检查异常 为未检查的异常扩展或的子类。 可能的答案是什么?

  • 问题内容: 我正在尝试创建一个具有自定义形状(六边形)的按钮,但其行为类似于普通的JButton(即与ActionListener一起使用)。 我创建了一个扩展AbstractButton的类,但是单击它似乎不会向ActionListener发送事件。如果我更改类以扩展JButton,则它可以很好地工作,但是会弄乱按钮的显示方式。我假设有一种方法需要重写才能引发事件,但是我不知道它是什么。 问题答

  • 问题内容: 如何在Java中创建自定义异常? 问题答案: 要定义受检查的异常,请创建的子类(或子类的层次结构)。例如: 可能引发或传播此异常的方法必须声明它: …,并且调用此方法的代码必须处理或传播此异常(或同时处理): 你会在上面的示例中注意到该错误IOException已被捕获并重新抛出为。这是用于封装异常的常用技术(通常在实现API时)。 有时在某些情况下,你不想强制每个方法在其throws

  • 我想用java为创建自定义注释。我想用这个注释比较两个字符串值,比较后会返回一个

  • 有人能帮我创建balow图像剪切搜索栏吗?我已经用自定义拇指和分段文本浏览过SeekBar,还有SeekBar拇指位置问题 但是我没有成功创建我的客户搜索栏,请帮助我

  • 问题内容: 我想知道如何在java中设置自己的侦听器。例如,我有一个将数字从1递增到100的函数。我想在值达到50时设置侦听器。我该怎么做?请给我建议任何教程。 问题答案: 查看使用侦听器的所有类的源代码。实际上,这很容易: 为您的听众创建一个界面,例如 维护清单 侦听器应在每个事件上进行遍历,然后遍历列表并使用一些事件参数调用适当的方法 至于观察者模式以及一些Java代码,请看维基百科。