【问题标题】:Drawing layout for Java swingJava swing 的绘图布局
【发布时间】:2011-12-15 17:05:49
【问题描述】:

上面的布局,我是用 HTML 画出来的。它显示谁可以接听电话。 (轮询数据,显示员工状态,效果很好)

现在我正在学习Java,所以我也想用Java制作这个程序。

但不知道如何绘制此布局。我已经阅读了 AWT 和 Java 书籍中的 Swing 部分,但不知道..

我想,首先制作包装容器。以及部门栏的 4 个面板。

以及如何制作包含姓名和午餐时间的人员状态框。

请帮我了解一下 Java 布局和 Swing。

如果不是要求太多,能否请你写出源代码? 抱歉问代码!

谢谢!

【问题讨论】:

  • 编写源代码实际上要求太多。不过,我们可以为您指明正确的方向。您是否希望用户与界面进行交互,即单击名称以执行某些操作,还是仅用于显示目的。
  • 我必须支持那些要求您要求其他人编写您的代码的人。这在这里不合适。

标签: java swing


【解决方案1】:

代码会很长。一个好的 GUI 编辑器,比如 NetBeans IDE 的那个,会很有帮助。 结构如下:

  • JFrame,将(内容窗格的)Layout 设置为 BorderLayout
    • JScrollPane
      • 具有面向 X 轴的 BoxLayout 的 JPanel
        • JPanel 1,BoxLayout 面向 Y 轴
          • JLabel 列标题
          • JPanel/JLabel 带有 as 文本可能 nametime
          • ...
        • JPanel 2,BoxLayout 面向 Y 轴
        • JPanel 3,BoxLayout 面向 Y 轴
        • JPanel 4,BoxLayout 面向 Y 轴

您自己的设计的抽象数据模型将有助于管理它。

您可以轻松添加圆角边框等。

【讨论】:

  • +1 表示很多观点,但特别指出像 NetBeans 这样的 IDE 既可以加快开发时间,又可以使用标准布局管理器(嵌套)。
  • 谢谢! !! JPanel/JLabel with as text 可能是name时间!!
  • 你能告诉我为什么需要使用 JPanel/JLabel 吗? (我的意思是为什么不只是 JLabel)。我尝试只使用 JLabel,然后我遇到了中心对齐问题,我无法使其居中对齐。是因为这个吗?还是有其他原因?谢谢你:)
  • 要么用 JLabel 停止,要么构造一个 JPanel,上面可能有两个 JLabel 等。 JLabel 提供了一个图标,因此可能需要检查插图:label.setInsets(new Insets(1, 1, 1, 1));。其余的,如果你添加了圆角边框,你可以控制正确的宽度。
  • 我可以再问一个问题吗?,您知道如何将标签宽度设置为最大(父(框布局)面板宽度)。我试过了,1)label.setMinimumSize(new Dimension(100,200)); (x) 2)label.setSize(new Dimension(testPanel.getSize().width-10,50)); (x) 3) label.setPreferredSize(new Dimension(testPanel.getSize().width-10,50)); (x)...非常感谢!
【解决方案2】:

是的,要求我们为您编写代码通常要求太多。

你试过什么?
你有没有显示JFrame? (你的主窗口,除非你正在做一个Applet
你了解JLabels吗? (这是您将用于创建状态字段的内容)
你了解LayoutManagers吗? (提示,您可能希望开始一个网格布局)。

在您很好地了解了这三件事(坦率地说,还有很多)之后,是时候提问了:
您的数据是如何存储的?它在数据库中吗?服务器上的文件?服务器上的服务?本地数据/文件?

这些是您必须回答的问题。很遗憾,我们无法为您解答。

【讨论】:

  • 不错的链接。好吧,无论如何,其中有3个。对于小程序,我更喜欢stackoverflow.com/tags/applet/info ;)
  • 太棒了!我什至不知道标签描述如此深入和足智多谋。谢谢!
  • 嗯,写的标签描述一般都那么好。 :-)
  • 感谢您的评论,很抱歉询问代码。但是,实际上对我来说,数据存储、数据库和服务器比绘制布局更容易。我没有提到这一点,但我尝试了网格布局,我只是想知道如何绘制人的状态框(比如,它应该是 2D 框、面板还是标签?)
猜你喜欢
  • 2012-01-29
  • 2019-04-04
  • 2018-05-03
  • 2014-12-20
  • 2016-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多