java 最后一个控件占据整个窗口_【Java】关于图形用户编程(为什么最后一个按钮会布满整个窗体)...

这篇博客探讨了在Java GUI编程中遇到的一个问题,即为什么最后一个控件会占据整个窗口。作者展示了使用GridLayout、FlowLayout和GridBagConstraints等布局管理器的示例,并强调了GridBagConstraints在设置组件约束时的复杂性。最后,作者通过调整组件大小和使用特定布局管理器的技巧来解决这个问题。
摘要由CSDN通过智能技术生成

//importjava.awt.BorderLayout;importjava.awt.Container;importjava.awt.Dimension;//importjava.awt.FlowLayout;//importjava.awt.GridBagConstraints;//importjava.awt.GridBagLa...

//import java.awt.BorderLayout;

import java.awt.Container;

import java.awt.Dimension;

//import java.awt.FlowLayout;

//import java.awt.GridBagConstraints;

//import java.awt.GridBagLayout;

//import java.awt.GridLayout;

//import java.awt.Insets;

import javax.swing.JButton;

import javax.swing.JComboBox;

import javax.swing.JFrame;

import javax.swing.JLabel;

//import javax.swing.JPanel;

import javax.swing.JTextField;

public class GridLayoutDemo extends JFrame{

/**

*

*/

private static final long serialVersionUID = 1L;

JLabel name,sex,address;

JTextField nameText,addressText;

JButton ok,exit;

JComboBox sexBox;

public GridLayoutDemo(){

Container contentPane = this.getContentPane();

//contentPane.setLayout(new GridBagLayout());

//contentPane.setLayout(new FlowLayout());

name = new JLabel("姓名:");

sex = new JLabel("性别:");

address = new JLabel("地址:");

nameText = new JTextField();

addressText = new JTextField();

ok = new JButton("确认");

exit = new JButton("退出");

sexBox = new JComboBox();

sexBox.addItem("男");

sexBox.addItem("女");

contentPane.add(name);

contentPane.add(nameText);

contentPane.add(sex);

contentPane.add(sexBox);

contentPane.add(address);

contentPane.add(addressText);

contentPane.add(ok);

contentPane.add(exit);

//contentPane.add();

//new JSeparator(JSeparator.HORIZONTAL);

name.setBounds(10, 10, 40,20);

nameText.setBounds(55, 10, 80, 20);

sex.setBounds(140, 10, 40, 20);

sexBox.setBounds(185, 10, 80, 20);

address.setBounds(10, 35, 40, 20);

addressText.setBounds(55,35,185,20);

ok.setBounds(65,60,80,30);

//exit.setBounds(155,60,80,30);

//exit.setPreferredSize(new Dimension(80,40));

/*

* 固定组件大小方法

*/

Dimension dim = new Dimension(80,40);

exit.setMaximumSize(dim);

exit.setMinimumSize(dim);

exit.setPreferredSize(dim);

/*

contentPane.add(name, new GridBagConstraints(0,0,1,1,0,0,GridBagConstraints.CENTER,

GridBagConstraints.HORIZONTAL,new Insets(0,5,5,5),0,0));

contentPane.add(nameText, new GridBagConstraints(GridBagConstraints.RELATIVE,0,5,1,0,0,GridBagConstraints.NORTHWEST,

GridBagConstraints.HORIZONTAL,new Insets(5,5,5,5),0,0));

contentPane.add(sex, new GridBagConstraints(7,0,1,1,0,0,GridBagConstraints.NORTH,

GridBagConstraints.HORIZONTAL,new Insets(5,5,5,5),0,0));

contentPane.add(sexBox, new GridBagConstraints(8,0,3,1,0,0,GridBagConstraints.CENTER,

GridBagConstraints.HORIZONTAL,new Insets(5,5,5,5),0,0));

/* contentPane.add(address, new GridBagConstraints(1,2,1,1,0,0,GridBagConstraints.CENTER,

GridBagConstraints.HORIZONTAL,new Insets(5,5,5,5),0,0));

*/

validate();

setVisible(true);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setBounds(100,100,200,200);

}

public static void main(String[] args){

new GridLayoutDemo();

}

}

能不能具体详细点 ,谢谢 我试过其他布局,那个GridBagConstraints太繁琐了 就甭提了诶

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值