gpt4 book ai didi

java - 如何测量 Java 中按钮所需的大小

转载 作者:行者123 更新时间:2023-11-29 04:04:15 25 4
gpt4 key购买 nike

我需要制作一个按钮,根据应用程序的状态显示不同的内容。因此,例如,如果没有打开任何内容,其标题将是“类(class)计划”,如果项目 B 打开,它将是“项目 B 类(class)计划”,我为此使用 java.awt.Button 类。我的问题是,有没有办法确定按钮应该有多大以适合给定的文本。例如,我能否以某种方式获取按钮使用的给定字体中每个字符的宽度,然后将其乘以我想使用的标题中的字符?我将如何获得此字符宽度或有更好的方法吗?谢谢!

最佳答案

测量特定字体中单个字符的宽度(并非所有字符的宽度都相同)会变得很复杂,尤其是如果您想考虑字符之间的空格,并在两侧添加一些边距,这样它们就不会相互抵触按钮的边缘。 (注意,其他人提供了一些比我意识到的更简单的方法!)

更好/更常用的解决方案是让 Java 为您完成工作。如果您使用的是 java.awt.Button(或 javax.swing.JButton),那么它通常会自动调整其上的文本大小。如果您的特定按钮表现异常,那么您可能有布局问题。查看关于 Layout Managers 的 Java 教程部分获取更多信息。

举个例子(在 Swing 中,而不是在 AWT 中——抱歉!),这两个按钮最终的大小适合它们上面的文本:

import javax.swing.*;

public class ButtonTest {
public static void main(String[] args) {
JButton button1 = new JButton("Some label");
JButton button2 = new JButton("Some much longer label");
JFrame frame = new JFrame();
JPanel panel = new JPanel();
panel.add(button1);
panel.add(button2);
frame.getContentPane().add(panel);
frame.pack();
frame.setVisible(true);
}
}

如果您真的想要大小,而不是让 Java 发挥最大作用,那么我建议调用 button1.getPreferredSize()button2.getPreferredSize()在调用 frame.pack() 之后。

关于java - 如何测量 Java 中按钮所需的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1225017/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com