Java中OverlayLayout的重要性是什么?

What is the importance of OverlayLayout in Java?

叠加层

  • OverlayLayout是Objectclass的子类,它可以将组件布置在彼此的顶部,并使用组件指定的对齐方式将它们相对放置。
  • 当给各个组件指定不同的大小时,我们可以看到所有组件。
  • 要使组件在框架中的其他位置或其他位置对齐,可以使用两种方法setAlignmentX()和setAlignmentY()。 这些参数是从0.0f到1.0f的浮动值。 OverlayLayout的最大值为1.0fbydefault。
  • OverlayLayout的重要方法是addLayoutComponent(),
    getTarget(),invalidateLayout(),maximumLayoutSize()等。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import java.awt.*;
import javax.swing.*;
import javax.swing.OverlayLayout;
public class OverlayLayoutTest extends JFrame {
 public OverlayLayoutTest() {
   setTitle("OverlayLayout Test");
   JPanel panel = new JPanel() {
    public boolean isOptimizedDrawingEnabled() {
      return false;
    }
   };
   LayoutManager overlay = new OverlayLayout(panel);
   panel.setLayout(overlay);
   JButton button = new JButton("Small");
   button.setMaximumSize(new Dimension(75, 50));
   button.setBackground(Color.white);
   panel.add(button);
   button = new JButton("Medium Btn");
   button.setMaximumSize(new Dimension(125, 75));
   button.setBackground(Color.lightGray);
   panel.add(button);
   button = new JButton("Large Button");
   button.setMaximumSize(new Dimension(200, 100));
   button.setBackground(Color.orange);
   panel.add(button);
   add(panel, BorderLayout.CENTER);
   setSize(400, 300);
   setLocationRelativeTo(null);
   setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   setVisible(true);
 }
 public static void main(String args[]) {
   new OverlayLayoutTest();
 }
}

输出量