1
zhanghua
2024-09-26 c775c6953d9759e70f08acbfa8f6d7490aaae3d1
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
36
37
38
39
40
41
42
43
44
45
46
package com.netsdk.demo.customize.surfaceEventDemo.frame.basic;
 
import javax.swing.*;
import javax.swing.border.Border;
import java.awt.*;
import java.util.ArrayList;
import java.util.Arrays;
 
/**
 * Swing 工具类
 *
 * @author 47040
 * @since Created in 2021/3/26 18:42
 */
public class SwingUtil {
 
    // 设置边框
    public static void setBorderEx(JComponent object, String title, int margin) {
        Border innerBorder = BorderFactory.createTitledBorder(title);
        Border outerBorder = BorderFactory.createEmptyBorder(margin, margin, margin, margin);
        object.setBorder(BorderFactory.createCompoundBorder(outerBorder, innerBorder));
    }
 
    // 禁用 Container 内所有组件
    public static void SetEnableAllInnerComponent(Component container, boolean enable) {
        for (Component component : getComponents(container)) {
            component.setEnabled(enable);
        }
    }
 
    // 获取 Swing Container 内所有的非 Container 组件
    public static Component[] getComponents(Component container) {
        ArrayList<Component> list;
        try {
            list = new ArrayList<>(Arrays.asList(
                    ((Container) container).getComponents()));
            for (int index = 0; index < list.size(); index++) {
                list.addAll(Arrays.asList(getComponents(list.get(index))));
            }
        } catch (ClassCastException e) {
            list = new ArrayList<>();
        }
        return list.toArray(new Component[0]);
    }
 
}