【问题标题】:How to place 2 Jlabel object into a JFrame?如何将 2 个 Jlabel 对象放入 JFrame?
【发布时间】:2013-11-17 21:53:17
【问题描述】:

我是 Java Swing 的新手,但遇到以下问题:

我有一个名为 LoginFrame 的类,它必须显示一个包含登录表单的 JFrame 对象:

package com.techub.crystalice.gui.login;

import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JLabel;

import org.jdesktop.application.SingleFrameApplication;

import com.techub.crystalice.gui.Constants;
import com.techub.crystalice.gui.GUI;


public class LoginFrame extends SingleFrameApplication {

    @Override
    protected void startup() {
        // TODO Auto-generated method stub
        System.out.println("DENTRO: LoginFrame() ---> startup()");

        JFrame loginFrame = this.getMainFrame();
        Dimension minimumSize = new Dimension(400, 250);
        loginFrame.setMinimumSize(minimumSize);
        loginFrame.setTitle("XCloud Login");

        JLabel userName = new JLabel("Username:");
        JLabel pswd = new JLabel("Password:");

        loginFrame.add(userName);
        loginFrame.add(pswd);

        show(loginFrame);

        //show(new JLabel("Hello World"));

    }

    public static void main(String[] args) {
        System.out.println("DENTRO: LoginFrame() ---> main()");
        launch(LoginFrame.class, args);
    }

}

抽象类 SingleFrameApplication 自动为我提供 JFrame 对象,我在该对象上设置了一些属性(尺寸和标题)。

然后我尝试添加 2 个 JLabel 对象,分别显示字符串“用户名:”和“密码:**”

问题在于,这样它只在 JFrame 的中心(垂直)显示字符串“Password”,而不是两者都在另一个下方。

为什么?如何放置 2 个 JLabel 以及如何将它们以正确的方式放置在我的 JFrame 中?

我错过了什么?

Tnx

安德烈亚

【问题讨论】:

    标签: java swing jframe awt jlabel


    【解决方案1】:

    简单的解决方案:将 JLabels 放入 JPanel,然后将该 JPanel 放入 JFrame。

    更长的答案:您的问题在于布局。 JFrame(或者更准确地说,它的 contentPane)默认使用 BorderLayout,当您在不使用 int 常量共同参数的情况下向其中添加组件时,默认情况下将组件放置到 BorderLayout.CENTER 位置。最后添加的组件将涵盖之前添加的所有组件。而 JPanel 默认使用 FlowLayout,所有添加到其中的组件都会按照 FlowLayout 的规则一个接一个地添加。

    这一切的关键是阅读tutorial on how to use Swing layout managers,然后和他们一起玩以更好地学习使用它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-07
      • 2017-02-21
      • 2021-12-12
      • 2013-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多