【问题标题】:JLabel positioning into JPanelJLabel 定位到 JPanel
【发布时间】:2014-02-27 17:41:11
【问题描述】:

我编写了这段代码来建立数据库连接并添加一个客户端:

//adding the left panel
JPanel left = new JPanel();
left.setPreferredSize(new Dimension(250, 500));
left.setLayout(new BoxLayout(left, BoxLayout.Y_AXIS));
add(left);

//adding the right panel
JPanel right = new JPanel();
right.setPreferredSize(new Dimension(250, 500));
right.setLayout(new BoxLayout(right, BoxLayout.Y_AXIS));
add(right);

//adding the jlabel title to the left panel
JLabel leftTitle = new JLabel("Add a client");
leftTitle.setAlignmentX(CENTER_ALIGNMENT);
left.add(leftTitle);

//adding the jlabel title to the right panel
JLabel rightTitle = new JLabel("Make a reservation");
rightTitle.setAlignmentX(CENTER_ALIGNMENT);
right.add(rightTitle);

//adding the jlabel "name"
JLabel nameL = new JLabel("Name:");
left.add(nameL);

我想把这个 JLabel 移到这里:

我试过nameL.setAlignmentX(LEFT_ALIGNMENT);,但还是不行

【问题讨论】:

    标签: java swing jpanel jlabel layout-manager


    【解决方案1】:

    您的问题是您使用了BoxLayout

    left.setLayout(new BoxLayout(left, BoxLayout.Y_AXIS));
                       ^^^^^^^^^
    

    您的 BoxLayout 设置为沿 y 轴居中对齐事物,因此无论设置多少对齐都不会改变这一点。为了解决您的问题,您需要一个不同的布局管理器,例如 GroupLayoutCardLayout

    【讨论】:

    • 我做到了,但它给了我一个错误:线程“主”中的异常 线程“AWT-EventQueue-0”中的异常 java.lang.IllegalStateException: javax.swing.JLabel[,0,0 ,0x0,无效,alignmentX=0.0,alignmentY=0.0,border=,flags=8388608,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,horizo​​ntalAlignment=LEADING,horizo​​ntalTextPosition=TRAILING,iconTextGap=4,labelFor=, text=添加客户端,verticalAlignment=CENTER,verticalTextPosition=CENTER] 未附加到水平组
    • 您没有设置水平组。您需要告诉每个组件它在垂直和水平方向上的位置。
    猜你喜欢
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多