首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >切换选项卡后,Applet组件转到默认布局

切换选项卡后,Applet组件转到默认布局
EN

Stack Overflow用户
提问于 2012-12-14 05:31:13
回答 2查看 265关注 0票数 1

我使用setLocation(x,y)在基于AWT的applet中放置组件,但是当我切换制表符时,组件的位置又回到了默认布局。

代码语言:javascript
复制
import java.applet.*;
import java.awt.*;

public class AppletEx extends Applet {

  Label test;

  public void init() {

      test = new Label("test");
      add(test);   

  }

  public void start() {
  }

  public void stop() {
  }

  public void destroy() {
  }

  public void paint() {
      test.setLocation(10, 10);
  }

}
EN

回答 2

Stack Overflow用户

发布于 2012-12-14 09:49:47

代码语言:javascript
复制
import java.awt.BorderLayout;
// it is the 3rd millennium, time to use Swing
import javax.swing.*;
import javax.swing.border.EmptyBorder;

/** <applet code='AppletEx' width='120' height='50'></applet> */
public class AppletEx extends JApplet {

  JLabel test;

  public void init() {
      test = new JLabel("test");
      // a border can be used for component padding
      test.setBorder(new EmptyBorder(10,10,10,10));
      // default layout of Applet is FlowLayout,
      // while JApplet is BorderLayout
      add(test, BorderLayout.PAGE_START);
  }
}

其他建议。

  • 不要试图在paint()中创建或更改任何组件,这将导致循环。
  • 不要覆盖paint(),除非在顶级容器(如AppletFrame )中执行自定义painting.
  • Don't覆盖paint(),但在可以添加到其中的<代码>D12或<代码>D13中。
  • Use布局(与null布局的无稽之谈相反)。
票数 1
EN

Stack Overflow用户

发布于 2012-12-14 05:39:16

如果你想使用绝对定位,你不需要使用布局管理器:

代码语言:javascript
复制
setLayout(null);
test = new Label("test");
add(test);
test.setLocation(10, 10);
test.setSize(test.getPreferredSize());
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13868834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档