【问题标题】:Problems with java swing component listenerjava swing组件监听器的问题
【发布时间】:2013-01-07 02:43:06
【问题描述】:

我正在 netbeans 中创建一个 GUI,并试图使其在调整框架大小、最小化、最大化等时组件保持正确对齐。我添加了一个组件侦听器来执行此操作并添加了formComponentMoved 和 formComponentResized 的代码。当表单被调整大小或移动时,这完美地工作,问题是当表单被最大化或最小化时它不起作用。我在组件侦听器的代码下方附上了。我在这里错过了什么?

private void formComponentResized(java.awt.event.ComponentEvent evt) {                                      
     jSplitPane1.setSize(new Dimension((int)(this.getWidth()*.98), (int)(this.getHeight()*.6)));
     jSplitPane1.setDividerLocation(jSplitPane1.getWidth()/2);
     jPanel1.setSize(new Dimension(jSplitPane1.getWidth()/2, jSplitPane1.getHeight()));
     jPanel2.setSize(new Dimension(jSplitPane1.getWidth()/2, jSplitPane1.getHeight())); 
     zoomToPeak.setLocation(jPanel2.getX() + 5, jPanel2.getY() + jPanel2.getHeight() + 30);
     peak.setLocation(zoomToPeak.getX() + zoomToPeak.getWidth() + 10, zoomToPeak.getY() + 1);

}                                     

private void formComponentMoved(java.awt.event.ComponentEvent evt) {                                    
    jSplitPane1.setSize(new Dimension((int)(this.getWidth()*.98), (int)(this.getHeight()*.6)));
    jSplitPane1.setDividerLocation(jSplitPane1.getWidth()/2);
    jPanel1.setSize(new Dimension(jSplitPane1.getWidth()/2, jSplitPane1.getHeight()));
    jPanel2.setSize(new Dimension(jSplitPane1.getWidth()/2, jSplitPane1.getHeight())); 
    zoomToPeak.setLocation(jPanel2.getX() + 5, jPanel2.getY() + jPanel2.getHeight() + 30);
    peak.setLocation(zoomToPeak.getX() + zoomToPeak.getWidth() + 10, zoomToPeak.getY() + 1);
}  

提前致谢

【问题讨论】:

  • 为了尽快获得更好的帮助,请发帖SSCCE

标签: java swing alignment awt componentlistener


【解决方案1】:

您缺少布局管理器。它们是保持组件对齐的正确方法。

【讨论】:

  • NetBeans GUI builder 默认为您提供 GroupLayout。
  • 谢谢,我一直在搞乱布局管理器,但似乎在 netbeans 中对齐组件有时比它的价值更麻烦
  • 根本问题包括很多复杂的事情,因为您无疑已经尝到了尝试“手动”做的味道——调整窗口大小时事情是如何移动的?除了移动之外,它们还会调整大小吗?不太明显的是,我们如何使它看起来像其他 UI,以便我们的用户识别它的作用和它将做什么?布局管理器是专门为处理这些事情而构建的,通常根据“最小惊讶原则”,如果您要编写好的 Swing UI 代码,那么您将不得不花费精力去了解它们。我对 netbeans 不熟悉。
猜你喜欢
  • 2011-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-26
相关资源
最近更新 更多