Java 切换选项卡后,小程序组件进入默认布局
我使用setLocationx,y将组件放置在基于AWT的小程序中,但当我切换选项卡时,组件的位置会回到默认布局Java 切换选项卡后,小程序组件进入默认布局,java,applet,Java,Applet,我使用setLocationx,y将组件放置在基于AWT的小程序中,但当我切换选项卡时,组件的位置会回到默认布局 import java.applet.*; import java.awt.*; public class AppletEx extends Applet { Label test; public void init() { test = new Label("test"); add(test); } public void
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);
}
}
如果要使用绝对定位,则不需要使用布局管理器:
setLayout(null);
test = new Label("test");
add(test);
test.setLocation(10, 10);
test.setSize(test.getPreferredSize());
其他提示
不要试图创建或更改油漆内的任何组件,否则会导致循环。
除非进行自定义绘制,否则不要覆盖绘制。
不要覆盖顶层容器(如Applet或Frame)中的绘画,而是可以添加到面板或JPanel中的绘画。
使用布局,而不是空布局的胡说八道。
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);
}
}