如何在Java画布中添加此按钮?

时间:2011-07-12 19:57:36

标签: java swing canvas awt jframe

如何在此画布上添加按钮?比如浮动......而不是使用添加(按钮)在网格中使用它;

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.
  }
}

3 个答案:

答案 0 :(得分:4)

为什么不使用Swing代替AWT。毕竟你导入javax.swing。*。然后你会使用JWindow。

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

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

答案 1 :(得分:3)

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

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

这将使按钮浮动在没有绝对定位的任何其他内容的顶部。见他们的demo,绝对位置,Glasspane替补

答案 2 :(得分:0)

和上一张海报一样。如果你在画布后添加按钮,按钮将位于画布的顶部。你应该记录你自己关于轻量级和重量级的组件,因为那样你就会在这种问题上得到快速的结果。 一个简单的解释:http://www.blurtit.com/q132749.html