Java 我如何将这些控件与本周的左侧对齐?

Java 我如何将这些控件与本周的左侧对齐?,java,swing,Java,Swing,这就是它的输出: 我想在最左边对齐“Imprimante:MonImprimante” 以及3个复选框 通过使用ctrl-f搜索***,您可以找到与我想要对齐的内容相关的代码 这是我的代码: ` 在我的gui上放置控件的任何帮助都将非常感谢! 非常感谢你们 每次添加JCheckBox、JLabel或JRadioButton(从这里开始表示为j),请尝试调用j.setHorizontalTextAlignment(SwingConstants.LEFT)。但是,我怀疑这可能不起作用,因为您使用的

这就是它的输出:

我想在最左边对齐“Imprimante:MonImprimante” 以及3个复选框

通过使用ctrl-f搜索***,您可以找到与我想要对齐的内容相关的代码

这是我的代码: `

在我的gui上放置控件的任何帮助都将非常感谢!
非常感谢你们

每次添加JCheckBox、JLabel或JRadioButton(从这里开始表示为
j
),请尝试调用
j.setHorizontalTextAlignment(SwingConstants.LEFT)。但是,我怀疑这可能不起作用,因为您使用的是
GridLayout
,这是一种相当不灵活的布局


那会更好,IHMO,如果您在
JPanels
中为这些组件使用
GridBagLayout
,并使用
gridbagstraints
告诉布局,当您将这些组件添加到各自的面板时,如何对齐这些组件。

使用具有硬设置布局的嵌套面板,然后使用没有硬设置布局的包装器,您的生活会更加艰难。如果您打算在微级别进行显式控制,并有特定的显示要求(如标签盒),则应在
JPanelWrap
JPanelSuperWrap
中具有显式布局

此外,使用能够更好地传达您意图的布局。当a更好地表达您的意图时,为什么在嵌套组件中使用3x1?这样做的Swing等价于HTML嵌套的
布局。您可以使内部面板使用带有填充框的框,因为它们是简单的列,并为
JPanelSuperWrap
使用2x2 GridBagLayout,其中
JPanelBtn
占2行


你可能也想要更好的名字,而不是那些面板实际上是什么,你真的应该考虑把这个视图封装成从IMPrimeTealsWiels/Cuth>实例化的子组件。换句话说,将像

JPanelBtn
这样的片段放入另一个类中,该类在语义上定义分组是什么,比如
SelectionChoices
,然后在该类上定义一个返回JPanel的方法

要做到这一点,你只要做到这一点

    JPanel scope = new JPanel();
scope.setBorder(BorderFactory.createTitledBorder("Scope"));
scope.setLayout(new BoxLayout(scope,BoxLayout.Y_AXIS));
scope.setAlignmentX(Component.LEFT_ALIGNMENT);

我认为您需要使用不同于
GridLayout
的布局管理器,如果我从午餐回来后没有回答这个问题,我将发布一些代码。请学习java命名约定并遵守它们。
    JPanel scope = new JPanel();
scope.setBorder(BorderFactory.createTitledBorder("Scope"));
scope.setLayout(new BoxLayout(scope,BoxLayout.Y_AXIS));
scope.setAlignmentX(Component.LEFT_ALIGNMENT);