我想在Java中为库系统进行简单的登录。如何在框架中获取文本字段?

时间:2016-09-23 14:28:50

标签: java swing

我需要一个简单的登录页面,学生可以输入他/她的凭据。但是除了用户名和密码之外,我无法显示文本字段以显示在用户名下方。 这是我到目前为止编写的代码

using System.IO;

//this will return @"F:\UploadedFile\file1.docx"
var fullFileName = Path.Combine(folderName, fileName);
var bytes=  System.IO.File.ReadAllBytes(fullFileName);

//do something with your file.

2 个答案:

答案 0 :(得分:1)

首先,setVisible(true)应该总是放在最后,除非你想显示输出然后修改它,这不是通常的情况。

如果您的意思是想要这个输出:

用户名:_____________< - textfield

密码:_____________

然后你可以试试GridLayout并将上面的输出分成四个部分(2x2)。

您可以访问https://docs.oracle.com/javase/tutorial/uiswing/layout/grid.html了解更多详情,或https://examples.javacodegeeks.com/desktop-java/awt/gridlayout/java-gridlayout-example/查看示例。

答案 1 :(得分:1)

你的问题是你过早地做frame.setVisible(true);

试试这个:

import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Loginpage {
    private JPanel panel;
    private JLabel label;
    private JFrame frame;
    private JTextField field;

    /* Constructor */public Loginpage() {
        gui();
    }

    public void gui() {
        frame = new JFrame("WELCOME ");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setBounds(500, 500, 500, 500);/* X axis,Y axis,Width,Height */

        panel = new JPanel();
        label = new JLabel("Username");
        field = new JTextField(20);
        panel.add(label);
        frame.add(panel);
        frame.add(label, BorderLayout.WEST);

        frame.add(field);

        frame.setVisible(true);

    }

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

    }
    }

还有其他一些事情:

  • 您可能希望将Layout添加到面板,例如panel.setLayout(new FlowLayout());
  • 不应在field之前将frame添加到frame.add(field);,而应将其panel添加到panel.add(field);
  • frame.add(label, BorderLayout.WEST);真的是你想要的吗?你可以这样做panel.add(label, BorderLayout.WEST);。但是这将在文本字段的右侧显示标签。

在这些更新之后,代码变为:

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Loginpage {
    private JPanel panel;
    private JLabel label;
    private JFrame frame;
    private JTextField field;

    /* Constructor */public Loginpage() {
        gui();
    }

    public void gui() {
        frame = new JFrame("WELCOME ");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setBounds(500, 500, 500, 500);/* X axis,Y axis,Width,Height */

        panel = new JPanel();
        panel.setLayout(new FlowLayout());
        label = new JLabel("Username");
        field = new JTextField(20);
        panel.add(label);
        panel.add(field);
        frame.add(panel);

        frame.setVisible(true);

    }

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

    }

}