当前位置: 首页 > 知识库问答 >
问题:

java jbutton文本不适用于不同的环境

劳彦
2023-03-14

我在一个Jpanel中有一个jbutton,它有FlowLayout和尾部对齐。这段代码实际上在ubuntu环境中工作,但当我在centos环境中运行它时,文本不适合按钮。

JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.TRAILING));
myButton = new JButton("My Text");
buttonPanel.add(myButton);

然后我添加以下几行:

JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.TRAILING));
myButton = new JButton("My Text");
int width=myButton.getFontMetrics(exportButton.getFont()).stringWidth(myButton.getText());
int height=myButton.getFontMetrics(myButton.getFont()).getHeight()+10;
myButton.setPreferredSize(new Dimension(width+30, height));
buttonPanel.add(myButton);

这额外的线路有帮助,但看起来,解决方案并不好。

共有1个答案

包兴思
2023-03-14

>

  • FlowLayout默认情况下接受来自JComponentsPreferredSize

    JButton默认情况下不需要重新计算PreferredSize,让我们为正确的LayoutManagerFlowLayout作业,只接受PreferredSize

    最重要的是在setvisible(true)(构造函数中的最后几行代码)之前调用pack()(jframe,jdialog...)

    每个JComponent都可以返回自己正确的PreferredSize,那么没有理由重写或设置此值,在某些情况下,对于空的JPanel(专业自定义绘画)或JScrollPane可能会有所不同

  •  类似资料:
    • 我正在尝试使用WebView显示包含表的本地超文本标记语言文件。但是,当我使用WebView在线检查网站时,它运行良好,问题是当我尝试使用本地超文本标记语言文件时。 这是代码的webView部分: 我用一个在线主机测试了这个HTML文件,它工作得很好:

    • 我正在使用带有JPA的Spring Boot与数据库连接。我需要在实体上的@table注释中设置“catalog”属性。 有没有人知道其他的方法,比如application.properties文件,而不是硬编码的字符串,来改变它? 如果有任何解决办法,我将不胜感激。

    • 这是使用两个不同文本查找元素的正确方法吗?因为该元素在两个不同的环境中有两个不同的文本。 .find()。withText()

    • 我试图解决这个问题:https://leetcode.com/problems/palindrome-number/使用代码: 并在C中得到了这个错误: 但同样的代码在Java中运行得很好。为什么会这样?我该如何修复它?

    • 问题内容: 我在Swing应用程序中使用JWebBrowser。此类属于DJ项目。它需要swt jar执行。现在,我已将Windows的swt jar包含在应用程序的jar包装中。我想知道如何在同一包装中包含用于Linux / Mac的swt jars?我正在使用ant来构建应用程序jar。我应该建立将不同的swt罐放入不同平台的罐吗? 问题答案: 如果您想要一个可以在不同平台(Win / Mac

    • 问题内容: 我想在演讲结束后通知a 。似乎没有用。我已经使用过,在语音功能中,我提到了以下内容。 我在调用语音功能时给出了“ UniqueId”,如下所示。 在“文字转语音”引擎结束说话后的“ 我的”中,应该运行Toast通知其已经结束说话。但是似乎不起作用。 所有代码如下。 请为此提供解决方案。 问题答案: 主要问题是: 1)在初始化tts之前设置进度监听器。 2)尝试用后台线程制作Toast。