java的Swing,JTextField充满了整个窗口。

墨染白筝
  • 147
import java.awt.Dialog;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

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

public class Client {
    public static void main(String[] args){
    
        JFrame denglu = new JFrame("登陆界面");
        denglu.setVisible(true);
        denglu.setBounds(600, 420, 470, 250);
        JLabel word=new JLabel("欢迎使用,请先登录");
        word.setBounds(141, 30, 180, 30);
        JLabel name=new JLabel("账号");
        name.setBounds(80, 70, 40, 20);
        JLabel password=new JLabel("密码");
        password.setBounds(80, 100, 40, 20);
        JButton xiugaiBut = new JButton("修改密码");
        xiugaiBut.setBounds(80, 130, 100, 20);
        JButton dengluBut = new JButton("登陆");
        dengluBut.setBounds(200, 130, 100, 20);
        JTextField txtZhanghao = new JTextField();
        txtZhanghao.setBounds(150, 70, 140, 20);
        
        
        denglu.setResizable(false);
        JTextField txtPassword = new JTextField();
        txtPassword.setBounds(150, 100, 140, 20);
        denglu.add(word);
        denglu.add(name);
        denglu.add(password);
        denglu.add(xiugaiBut);
        denglu.add(dengluBut);
        denglu.add(txtZhanghao);
        denglu.add(txtPassword);
    }

}


运行结果:![图片描述][1]

第二个输入文本框充满了整个窗口
这是为什么,有什么好的解决办法吗?

回复
阅读 4.3k
1 个回答
✓ 已被采纳

需要添加

denglu.setLayout(null);

因为JFrame默认的Layout是BorderLayout,所以跟setBounds没有关系,只支持东南西北中布局方式,如果没有指定方向,控件默认都是添加到中间。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏