Swingbuilder - 应用程序位置居中

发布于 2024-08-30 11:01:28 字数 120 浏览 8 评论 0原文

我正在使用 Griffon->SwingBuilder 创建一个应用程序。我希望能够将应用程序集中在桌面上。

我知道我们可以在创建应用程序时提供“位置:[x,y]”参数。有没有办法访问桌面属性来计算中心?

I am creating an application using Griffon->SwingBuilder. I would like to able to center the application on the desktop.

I know we have the 'location: [x,y]' argument we can provide on application creation. Is there anyway to access desktop properties to calculate the center?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

2024-09-06 11:01:28

由于各种原因,您无法内联执行此操作。这是居中的一种方法。

import java.awt.*
import groovy.swing.*

sb = new SwingBuilder()
sb.build {
  f = frame(pack:true) {
      label "<html>" + (("This is a very long label."*3) + "<BR>")*5
  }
  Point cp = GraphicsEnvironment.localGraphicsEnvironment.centerPoint
  f.location = new Point((int)(cp.x - f.width), (int) (cp.y - f.height))
  f.show()
}

您无法在属性中设置它的原因是,当评估属性时,子节点尚未在任何地方创建或存储。一种替代方法是将其设置为子内容块的一部分:(

  frame(show:true) 
  {
      label "<html>" + (("This is a very long label."*3) + "<BR>")*5
      current.pack()
      Point cp = GraphicsEnvironment.localGraphicsEnvironment.centerPoint
      current.location = new Point((int)(cp.x -current.width/2), (int)(cp.y - current.height/2))
  }

当前是包含节点的元变量)。

For various reasons you cannot do it inline. Here is one way to center

import java.awt.*
import groovy.swing.*

sb = new SwingBuilder()
sb.build {
  f = frame(pack:true) {
      label "<html>" + (("This is a very long label."*3) + "<BR>")*5
  }
  Point cp = GraphicsEnvironment.localGraphicsEnvironment.centerPoint
  f.location = new Point((int)(cp.x - f.width), (int) (cp.y - f.height))
  f.show()
}

The reason you cannot set it in the attributes is that when the attributes are evaluated a child node has not yet been created or stored anywhere. One alternative is to set it as part of the child content block:

  frame(show:true) 
  {
      label "<html>" + (("This is a very long label."*3) + "<BR>")*5
      current.pack()
      Point cp = GraphicsEnvironment.localGraphicsEnvironment.centerPoint
      current.location = new Point((int)(cp.x -current.width/2), (int)(cp.y - current.height/2))
  }

(current is a meta-variable for the containing node).

杀手六號 2024-09-06 11:01:28

Swing 的功能之一是,它会记住最后的位置和大小(如果可调整大小)

One of Swing features is, that it remembers last position and size (if resizable)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文