我正在创建一个java GUI,其中有一些垂直框。在这些盒子里面,有一些按钮和标签。我试图将按钮和标签放在中心,但不起作用! 我正在使用此代码在中心设置标签。
JLabel update = new JLabel("update");
update.setHorizontalTextPosition(CENTER);
其中 update 是我的垂直框的最后一个组件。
另一个问题是我需要窗口自动调整大小,具体取决于我的GUI中的更改(因为它是动态的)! 我怎么能做到这一点?
答案 0 :(得分:3)
我正在尝试将按钮和标签放在中间但不起作用!我正在使用此代码在中心设置标签。
有几种方法可以做到这一点,但最简单的方法是使用GridBagLayout。 如果box / container(希望从JPanel或JComponent扩展)使用GridBagLayout,并使用GridBagConstraints将组件添加到容器中:gridX和gridY设置,但是weightX和weightY设置为默认值0,那些添加的组件将居中容器。
我无法显示代码,因为我不了解您当前正在使用的代码或您观察到的/所需图形的图像。如果您需要更多帮助,请编辑您的问题并提供更多相关信息。
另一个问题是我需要窗口自动调整大小,具体取决于我的GUI中的更改(因为它是动态的)!我怎么能做到这一点?
这将取决于您的GUI正在使用的布局管理器,这是我们目前尚不了解的。同样,如果您仍然遇到问题,请创建并发布您的Minimal, Complete, and Verifiable Example Program。
例如,以下具有居中按钮和JLabel文本的可调整大小的GUI:
由以下代码创建:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:variable name="SYS" select="//system" />
<xsl:template match="/">
<FindReceiptDetailScreenResults>
<xsl:choose>
<xsl:when test="Fault">
<xsl:apply-templates select="Fault" />
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="//results" />
</xsl:otherwise>
</xsl:choose>
</FindReceiptDetailScreenResults>
</xsl:template>
<xsl:template match="Fault">
<xsl:choose>
<xsl:when test="faultactor = 'Amisys'">
<PQMessage>not found</PQMessage>
</xsl:when>
<xsl:otherwise>
<PQMessage>
<xsl:value-of select="faultstring" />
</PQMessage>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="//results">
<xsl:choose>
<xsl:when test="$SYS = 'Amisys'">
<xsl:if test="PQMessage[string(.)]">
<PQMessage>
<xsl:value-of select="PQMessage[string(.)]" />
</PQMessage>
</xsl:if>
<prvAssocList>
<xsl:for-each select="/response/results/ver:receiptDetailHistoryRS/ver:receiptDetails/ver:receiptDetail[1]">
<prvAssocInfo>
<prvAssocCode>
<xsl:value-of select="receiptNumber" />
</prvAssocCode>
</prvAssocInfo>
</xsl:for-each>
</prvAssocList>
</xsl:when>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>