我无法在JAVA中重新排列文本

时间:2016-09-24 13:02:23

标签: java swing user-interface

基本上我们已经学过Java的基础知识,但我们还没有学过Java中的GUI。因此,在过去的两天里,我一直试图让我的文字从上到下显示而没有成功。有人可以帮忙重新安排吗?我想要#34;注册号码"显示在"用户名"下方。这是代码:

function showHide() {
  var div = document.getElementById("hidden_div");
  if (div.style.display == 'none') {
    div.style.display = '';
  } else {
    div.style.display = 'none';
  }
}

2 个答案:

答案 0 :(得分:2)

修改您的layouts和组件:您已使用流布局向内容窗格添加了没有布局的面板,然后再次将标签添加到内容窗格。 FlowLayout 将组件排列在一起。 SpringLayout GridBagLayout 最符合您的需求。这是一个使用 GridLayout

的简单示例
package management;

import javax.swing.*;
import java.awt.*;

public class Library extends JFrame {
    JFrame frame = new JFrame();
    JPanel panel = new JPanel();
    JLabel label1 = new JLabel();
    JLabel label3 = new JLabel();
    JLabel label2 = new JLabel();

    Library(){
        super("WELCOME TO KCA LIBRARY");

        setBounds(500, 500, 500, 500);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        Container con = this.getContentPane();
        con.add(panel);

        panel.setLayout(new GridLayout(3, 1));

        label1 = new JLabel("USERNAME");
        label1.setToolTipText("Enter Your Username");

        label2 = new JLabel("REGISTRATION NUMBER");
        label2.setToolTipText("Enter Your Registration no");

        label3 = new JLabel("PASSWORD");
        label3.setToolTipText("Enter Your Password");

        panel.add(label1);
        panel.add(label2);
        panel.add(label3);

        setVisible(true);
    }

    public static void main(String[]args){
        new Library();
    }

}

答案 1 :(得分:1)

如果您正在使用Java Swing,我认为您已导入它,您可以转到“设计”选项卡并在那里重新排列。

替代方法是使用AWT - 这是比Swing更老和更糟的技术,在这种情况下,您不能使用FlowLayout - 它将所有组件放入一行。 使用BoxLayout,GridBagLayout,GridLayout,GroupLayout甚至SpringLayout。 有关布局的更多信息:https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html

如果您有任何疑问,请询问。 :)