【问题标题】:How can i add this button inside the canvas of Java?如何在 Java 的画布中添加此按钮?
【发布时间】:2011-10-03 23:00:00
【问题描述】:

如何在此画布上添加按钮?就像浮动...在顶部,而不是使用 add(button) 将它放在网格中;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Myscreensaver extends Window 
{
  private static final Canvas canvas = new Canvas();
  private Button button;

  public Myscreensaver()
  {
    setLayout(new GridLayout(2,2));
    canvas.setPreferredSize(new Dimension(200, 200));
    add(canvas);
    //add(button); no add the button in the canvas not in the grid, then it looks odd.
  }
}

【问题讨论】:

    标签: java swing canvas awt jframe


    【解决方案1】:

    为什么不使用 Swing 而不是 AWT。毕竟你正在导入 javax.swing.*。然后你会使用 JWindow。

    如果您希望组件浮动在中心,那么您应该使用不同的布局管理器。也许是 GridBagLayout。

    setLayout( new GridBagLayout() );
    add(button, new GridBagConstraints());
    

    【讨论】:

      【解决方案2】:

      MigLayout 也有一个您可以考虑的选项:

      setLayout(new MigLayout("fill", "[grow,fill]"));
      add(canvas);
      add(button, "align 50% 50%");
      

      这将使按钮浮在任何其他添加的没有绝对定位的顶部。查看他们的demo,绝对位置,Glasspane Substitute

      【讨论】:

        【解决方案3】:

        与上一张海报的想法相同。如果您在画布之后添加按钮,则该按钮将位于画布的顶部。您应该记录自己对轻量和重量组件的了解,因为这样您将在此类问题中获得快速结果。 简单解释:http://www.blurtit.com/q132749.html

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-09-13
          • 1970-01-01
          • 1970-01-01
          • 2012-09-02
          • 1970-01-01
          • 1970-01-01
          • 2013-01-07
          相关资源
          最近更新 更多