我需要一个简单的登录页面,学生可以输入他/她的凭据。但是除了用户名和密码之外,我无法显示文本字段以显示在用户名下方。 这是我到目前为止编写的代码
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.
答案 0 :(得分:1)
首先,setVisible(true)应该总是放在最后,除非你想显示输出然后修改它,这不是通常的情况。
如果您的意思是想要这个输出:
然后你可以试试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();
}
}