GridBagLayout 布局 的行列概念以及gridx,gridy失效?
大家好,本人java初学者。
在做一个GUI界面的时候使用了GridBagLayout布局,代码如下。
我的理解是gridx 和gridy是将组件设置在 某一行某一列 上,所以我用不同的数值尝试性修改两个button的位置,但是不管怎么设置其位置都没有变化。
那么GridBagLayout中一行一列到底有几个单元格?gridxgridy 应该怎么用?
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.*;
public class LoginPanel extends JFrame implements MouseListener{
public JLabel lb1,lb2,lb3;
public JTextField tf1;
public JPasswordField pw1;
public JPanel p1;
public JButton b1,b2;
public LoginPanel(){
lb1=new JLabel("请输入用户名:");
lb2=new JLabel("请输入密码:");
lb3=new JLabel(" ");
tf1=new JTextField (15);
pw1=new JPasswordField (15);
p1=new JPanel();
b1=new JButton("确定");
b2=new JButton("重置");
this.setSize(600,600);
p1.setBackground(Color.yellow);
GridBagLayout playout=new GridBagLayout();
GridBagConstraints s= new GridBagConstraints();
s.gridwidth=2;
s.weightx = 0;
s.weighty=0;
playout.setConstraints(lb1, s);
s.gridwidth=0;
s.weightx = 0;
s.weighty=0;
playout.setConstraints(tf1, s);
s.insets=new Insets(20,0,0,0);
s.gridwidth=2;
s.weightx = 0;
s.weighty=0;
playout.setConstraints(lb2, s);
s.gridwidth=0;
s.weightx = 0;
s.weighty=0;
playout.setConstraints(pw1, s);
/*********这里的gridxgridy似乎没有生效********************/
s.gridx=3;
s.gridy=8;
s.gridwidth=1;
s.weightx = 0;
s.weighty=0;
playout.setConstraints(b1, s);
s.gridx=6;
s.gridy=8;
s.gridwidth=0;
s.weightx = 0;
s.weighty=0;
playout.setConstraints(b2, s);
/*****************************/
this.setLayout(playout);
this.getContentPane().setBackground(Color.gray);
lb1.setPreferredSize(new Dimension(100,30));
lb2.setPreferredSize(new Dimension(100,30));
tf1.setPreferredSize(new Dimension(100,30));
pw1.setPreferredSize(new Dimension(100,30));
//this.setLayout(new BorderLayout());
add(lb1);
add(tf1);
add(lb2);
add(pw1);
add(b1);
add(b2);
//this.pack();
setVisible(true);
}
public static void main( String [] args){
new LoginPanel();
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
}
相关阅读:
问大家一个问题,我刚做前端一个月(实习)
求解释函数
beautifulsoup怎样替换某一个tag中的所有内容(其中还包含多个tag),如tbody中的所有
?安装express过程cmd 进入工作目录错误的问题
在使用image cropper的时候发现安卓不兼容 源头是window.URL为undefined
复杂的业务型项目怎样合理规划 MVC 的程序结构?
用pyserial模块却显示不能打开串口?
How to write the follow simple DateUtil in C#(.net) ?
python selenium如何将两个.py的htmlrunner报告整合在一起
iOS9 Opengl ES texture 渲染问题?
nginx 部署 django 碰到的一些问题?
iOS:如何利用百度地图api计算两点间的实际距离?
各位大神都用什么node.js空间或者云主机?
关于微信地图getlocation问题。
在各大应用市场发布app有什么不同
关于react开发的一些小问题
在php中Controller向View传值
如何优化php代码结构
在iOS开发过程中遇到网络不稳定怎么处理
jxta程序只能运行一次,以后运行必须删除pse后重新配置,否则就出错,怎么办?