【问题标题】:How can I dynamically draw/scale buttons?如何动态绘制/缩放按钮?
【发布时间】:2023-03-24 13:12:01
【问题描述】:

这很简单,但我似乎无法弄清楚,我想定义我在 Y 轴上有多少空间,并定义我想要多少个按钮以及每个按钮之间的间隙,它应该弄清楚每个按钮的高度并放置按钮。

例如:

public void drawButtons(int buttons, int gap, int ySpace, int x, int width){

    for(int i = 0; i < buttons; i++){
        //Workout the y and the height here!
        int height = (ySpace / buttons) - (gap * (buttons - 1))

        //Other stuff here!

        g.fillRect(x, theY, width, height);
    }

}

按钮的 x 和宽度不是问题,我稍后会编辑此方法以在按钮的中心绘制文本并使用mousePressed 方法来确定按钮是否被单击。

【问题讨论】:

  • 您在y 空间中有n 按钮并希望将它们均匀分布?
  • 是的,每个按钮之间都有间隙
  • 我的程序不是应用程序,而是游戏,所以我想制作自定义按钮

标签: java button for-loop methods


【解决方案1】:

你正在重新发明轮子。

  1. 不要尝试自己绘制按钮。

  2. 不要手动将它们放在屏幕上。使用LayoutManager。自己将它们放在屏幕上比了解LayoutManager api 的工作原理要困难得多。

    • 如果您需要自动调整大小的控件,我建议您使用GroupLayout

我知道现在这似乎更难了,因为你必须了解所有这些东西是如何工作的,但我向你保证这些工具的存在是有原因的......因为它们让每个人的生活更轻松,而不是更难时间>。通过了解这些东西的工作原理,您将比仅仅使用paintComponent 更快地完成您的游戏。

【讨论】:

  • 一个 JButton 看起来像这样:google.co.uk/…,我希望我的按钮只是一个简单的按钮,例如:thedroidcafe.com/wp-stuff/uploads/2014/05/Flappy-Bird.jpg 或者看起来像我的世界按钮的东西,带有文本的简单图像创建一个单击时发出声音,我可以做到所有这些,但我需要弄清楚按钮应该在哪里,这也会有所帮助,如果你以不同的分辨率播放,它会缩放按钮!
  • @GenaratedPixelz 然后创建JComponent 的子类并覆盖paintComponent 以绘制这样的按钮,然后使用布局管理器将其放置在JPanel 中。让布局管理器控制它的位置,只需要担心告诉你的按钮如何绘制它自己
  • 能否举个例子说明我如何使用它?
  • @GenaratedPixelz 我已经做到了。单击我的答案中的许多链接。
  • 他们并没有真正的帮助:/
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-14
  • 2017-03-09
  • 1970-01-01
  • 1970-01-01
  • 2021-06-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多