Java 怎么根据文本获取Swing组件(Component)尺寸

2019年8月18日22:03:51Java 怎么根据文本获取Swing组件(Component)尺寸已关闭评论 124 863字阅读2分52秒

1.简介

Java 怎么根据文本获取Swing组件(Component)尺寸?——请看下文。

2.示例代码

/**
 * 版权所有 编程十万个怎么办(www.tah1986.com)
 */

import javax.swing.*;
import java.awt.*;

public class Main{
    public static Dimension getDimension(final Component component,
            String text) {

        FontMetrics fm = component.getFontMetrics(component.getFont());
        if (text == null) {
            text = "";
        }
        if (component instanceof PDBButton) {
            Icon icon = ((PDBButton) component).getIcon();
            int iconWidth = icon == null ? 0 : icon.getIconWidth();
            return new Dimension(fm.stringWidth(text) + 40 + iconWidth,
                    Math.max(20, fm.getHeight()));
        } else if (component instanceof PDBCheckBox) {
            return new Dimension(fm.stringWidth(text) + 40, 20);
        } else {
            return new Dimension(fm.stringWidth(text), fm.getHeight());
        }

    }
    public static Dimension getDimension(final Component component,
            final String text, final int x, final int y) {
        FontMetrics fm = component.getFontMetrics(component.getFont());
        return new Dimension(fm.stringWidth(text) + x, fm.getHeight() + y);
    }
}

 
继续阅读
编程十万个怎么办