Как я могу добавить эту кнопку внутри холста Java? - PullRequest
0 голосов
/ 12 июля 2011

Как я могу добавить кнопку поверх этого холста?как плавающий ... сверху вместо того, чтобы использовать его в сетке, используя 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.
  }
}

Ответы [ 3 ]

4 голосов
/ 13 июля 2011

Почему бы не использовать Swing вместо AWT. В конце концов вы импортируете javax.swing. *. Тогда вы бы использовали JWindow.

Если вы хотите, чтобы компонент плавал в центре, вам следует использовать другой менеджер компоновки. Может быть, GridBagLayout.

setLayout( new GridBagLayout() );
add(button, new GridBagConstraints());
3 голосов
/ 13 июля 2011

MigLayout также есть опция, которую вы можете рассмотреть:

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

При этом кнопка будет перемещаться поверх всего добавленного без абсолютного позиционирования. См. Их демо , абсолютное положение, заменитель стеклопакета

0 голосов
/ 14 июля 2011

Та же мысль, что и у последнего постера. Если вы добавите кнопку после холста, кнопка будет в верхней части холста. Вам следует документально подтвердить, что вы имеете дело с легкими и тяжелыми компонентами, потому что в этом случае вы получите быстрые результаты. Простое объяснение: http://www.blurtit.com/q132749.html

...