在Java中根据背景排列图像

时间:2012-08-02 23:45:35

标签: java image user-interface layout-manager

我正在尝试开发一个执行以下操作的Java程序:

  • 使用客户网络图的背景图片
  • 将带宽图的图像定位到各个客户端
  • 从另一个不断生成带宽快照的程序中每隔5秒刷新一次图形图像

现在,我可以设置背景图片,并且我非常有信心可以使用计时器刷新图像。我想要计划的是我将如何将这些图像定位到背景图片中显示的各个客户端。我做了一些研究,似乎我有几个选择,但我想确保在选择问题之前我选择了正确的选项。

在我看来,使用GridBagLayout将是我的选择,但是我想对更有经验的人群提出第二意见。如果使用GridBagLayout是正确的选择,你能推荐一些有助于我理解这个布局管理器的好教程吗?请记住,我对Java的经验有限,尤其是面向GUI的Java。

编辑:如果我没有充分解释这个概念,请告诉我。

3 个答案:

答案 0 :(得分:2)

检查出来 - http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html

GridLayout很可能满足您的需求而且易于使用 - 我假设的是带宽图的图像相同/固定...

在这里寻找一个例子 http://www.roseindia.net/tutorialsearch/?t=java+gridlayout+color

尝试Google关键字“GridLayout” - 有很多点击...

答案 1 :(得分:1)

如果您想进行高级布局,请查看MigLayout

它是一个非常灵活的布局管理器,几乎可以替代任何/所有现有的Swing布局管理器。如果你想做困难/复杂的布局,这是值得使用的。

感觉更像是一个HTML表格布局工具,支持多列跨度等任意缩放规则。

Quick Start Guide”非常好用很多例子 - 如果你想为你的项目评估MigLayout,我建议你看一下。

答案 2 :(得分:1)

如果'带宽图'图像位于BG图像的顶部,请查看OverlayLayout

  

布局管理器,用于将组件排列在彼此的顶部。 ..

OTOH我不会为此使用布局策略,而是......

  1. 创建BG的大小BufferedImage
  2. 将BG绘制到图像上。
  3. 以标签显示图像。
  4. 当需要绘制图形时,请为标签中的图像获取Graphics实例,然后将其绘制到该图形中。如果图形的大小和形状始终相同且没有透明度,则可以简单地绘制它们。否则,先画BG.