Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Swing JButton中获取文本内容像素_Java_Swing - Fatal编程技术网

Java 如何在Swing JButton中获取文本内容像素

Java 如何在Swing JButton中获取文本内容像素,java,swing,Java,Swing,作为标题,我想通过按钮上的文本内容动态调整JButton的大小,以确保文本在多语言下完整显示。但我不知道如何获得JButton上文本的宽度 JButton btn = new JButton("Sure"); 提前感谢你的帮助 我想通过按钮上的文本内容动态调整JButton的大小,以确保文本在多语言下完整显示。但我不知道如何获得JButton上文本的宽度 JButton btn = new JButton("Sure");

作为标题,我想通过按钮上的文本内容动态调整JButton的大小,以确保文本在多语言下完整显示。但我不知道如何获得JButton上文本的宽度

                 JButton btn = new JButton("Sure");
提前感谢你的帮助

我想通过按钮上的文本内容动态调整JButton的大小,以确保文本在多语言下完整显示。但我不知道如何获得JButton上文本的宽度

                 JButton btn = new JButton("Sure");
您不需要显式地执行此操作,因为如果您正确使用布局管理器,它们将为您处理此问题。如果在GUI呈现后向GUI添加JButtons,只需重新验证并重新绘制获取按钮的容器,布局管理器就可以完成其余工作

请注意,如果这个建议对您没有帮助,那么您可能需要告诉我们有关您的计划和问题的更多信息

我想通过按钮上的文本内容动态调整JButton的大小,以确保文本在多语言下完整显示。但我不知道如何获得JButton上文本的宽度

                 JButton btn = new JButton("Sure");
您不需要显式地执行此操作,因为如果您正确使用布局管理器,它们将为您处理此问题。如果在GUI呈现后向GUI添加JButtons,只需重新验证并重新绘制获取按钮的容器,布局管理器就可以完成其余工作

请注意,如果此建议对您没有帮助,那么您可能需要告诉我们有关您的程序和问题的更多信息。

如果您确实需要文本的宽度,您可以通过以下方式获得:

int width = btn.getFontMetrics(btn.getFont()).stringWidth( "I want the width of this String" );
但除非你像其他海报所指出的那样做一些深奥的事情,否则你可能实际上并不需要它。还要注意(文本的宽度)!=(按钮的宽度),进一步使得这个答案毫无用处

如果您真的需要文本的宽度,您可以通过以下方法获得:

int width = btn.getFontMetrics(btn.getFont()).stringWidth( "I want the width of this String" );

但除非你像其他海报所指出的那样做一些深奥的事情,否则你可能实际上并不需要它。还要注意(文本的宽度)!=(按钮的宽度),进一步使得这个答案毫无用处

+1使用Swing的方式,让布局管理器完成它的工作。我测试这个,你是对的。这是因为在控件工厂中,为控件设置了PreferedSize,我应该将其删除。Thx为您提供帮助。+1使用Swing的方式,让布局管理器完成其工作。我测试了这一点,您是对的。这是因为在控件工厂中,为控件设置了PreferedSize,我应该将其删除。Thx为您提供帮助。