我正在尝试创建一个登录页面。我为两个文本框和一个按钮编写了代码。用户名旁边有一个文本框,密码旁边有一个文本框。一个"登录"按钮如下。但我不确定为什么我的输出中没有显示文本框和按钮。我只在输出屏幕上显示用户名和密码标签。
奇怪的是,无论何时我拉伸输出框架(我的意思是水平或垂直拉动屏幕)两个文本框都会显示出来。
请检查我的代码,让我知道错误。我试图把图片放到更容易理解但我没有足够的声誉。请帮忙。
import javax.swing.*;
import java.awt.*;
public class HomeScreen{
public static void main(String args[]){
JFrame frame = new JFrame("Medical Store");
frame.setVisible(true);
frame.setSize(600,400);
JPanel panel = new JPanel(new GridBagLayout());
frame.getContentPane().add(panel, BorderLayout.NORTH);
GridBagConstraints c = new GridBagConstraints();
JLabel label1 = new JLabel("Username");
c.gridx = 0;
c.gridy = 0;
c.insets = new Insets(10,10,10,10);
panel.add(label1,c);
JLabel label2 = new JLabel("Password");
c.gridx = 0;
c.gridy = 1;
panel.add(label2,c);
JTextField textbox1 = new JTextField(10);
c.gridx = 1;
c.gridy = 1;
panel.add(textbox1,c);
JTextField textbox2 = new JTextField(10);
c.gridx = 2;
c.gridy = 1;
panel.add(textbox2,c);
JButton button1 = new JButton("Sign In");
c.gridx = 1;
c.gridy = 2;
panel.add(button1,c);
}
}
答案 0 :(得分:2)
您在添加所有组件之前调用 解决方案:在setVisible(true)
,因此您的GUI正在执行 ,在添加组件之前绘制自己。< / p>
JFrame frame = new JFrame("Medical Store");
frame.setVisible(true);
// all components added here
setVisible(true)
来电。
JFrame frame = new JFrame("Medical Store");
// all components added here
frame.setVisible(true);
现在所有组件都应该可视化。
其他狡辩:
setSize(...)
。而是让布局管理器和组件首选大小为您完成。pack()
,以便发生上述情况。