【问题标题】:Java button within graphics panel图形面板中的 Java 按钮
【发布时间】:2018-08-04 17:23:41
【问题描述】:

我对在 java 中开发 GUI 比较陌生,所以这可能是一个愚蠢的问题,或者根本不可能实现,但我们开始吧。

我创建了 1 个单独的 JPanel,没有设置边框布局或类似的东西,我打算使用图形类在它上面绘制一个 GUI。 JPanel 只是纯黑色,然后我在它上面画了一个巨大的框,留下黑色作为边框,并在这个白色框内绘制了整个 GUI。

我也想在那个白框 GUI 中添加按钮,但我不知道怎么做。事实上,它们甚至不必是传统的按钮 JButtons,如果我可以绘制一个形状并将其用作按钮,然后将事件处理程序添加到该形状也可以工作,但我不知道我是如何工作的我也这样做。

我的整个程序(这是一个学校课程项目)有很多代码,我不确定哪些部分甚至值得分享来帮助解决这个问题,因为我已经绘制了很多 GUI 方面,所以我'试图用文字解释我的问题。

老实说,我不知道自己在做什么,因此我们将不胜感激。

编辑:这是我当前 GUI 的屏幕截图,其中包含我希望添加按钮的方式和位置的“草图”。

GUI Image

【问题讨论】:

  • 您可以编辑您的问题并添加一个草图来描述您希望视图的外观;这样会更容易帮助你。编辑问题后,您可以在 cmets 中标记我。祝你好运!
  • 老实说,我不知道问题到底是什么
  • @Taslim 图像现在应该在那里,只需单击该链接,我希望它会有所帮助?
  • 右侧只是一个JTable 和支持页脚(面板和标签)。图形和按钮可以分成类/组件,只需使用FlowLayout 或类似的方式布置按钮。

标签: java user-interface button graphics


【解决方案1】:

与任何适当复杂的 UI 一样,您需要首先将其分解为可管理的块,重点关注相互交互和功能的领域。

例如...

告诉我你有两个主要的 UI 元素,左侧和右侧。

这可以很容易地用GridLayout 建立,但是,如果两侧的宽度不相等,GridBagLayout 可能更合适

对我来说,右边简单地说,JTable。您可以使用BorderLayout 将其放置在容器中,从而使表格占据CENTER 的位置。

然后,如果要求更复杂,关键信息将使用GridLayout(顶部和底部)或GridBagLayout 布局的组件。然后这个组件将被添加到BorderLayoutSOUTH 位置。

同样,这很简单。主要布局可能是BoderLayout,标题位于NORTH 位置,图形位于CENTER,按钮包裹在SOUTH 的组件中。

您可以使用FlowLayoutGridBagLayout 根据您希望它们的显示方式来布局按钮

建议

看看:

对于“边界”,我建议您查看LineBorder。更多详情请看How to use Borders

【讨论】:

  • 谢谢你。但是我已经尝试过了,但是一旦我开始弄乱 GridLayouts 并添加新容器,我的绘制方法就会出现空指针错误,这超出了我的范围。
猜你喜欢
  • 2015-12-29
  • 1970-01-01
  • 1970-01-01
  • 2015-05-31
  • 1970-01-01
  • 1970-01-01
  • 2014-06-19
  • 2017-08-15
  • 1970-01-01
相关资源
最近更新 更多