使用gridbaglayout布局方式的疑问

wkc720 wkc720 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
利用GridBagLayout布局方式进行布局。想让表格显示在左边,占9*9的格子。想让2个按钮显示在(11,7)和(11,9)的位置。为什么编程后,两个按钮的位置不对,其中“添加”按钮跑到最上面了?为什么会出现这种情况?想达到自己想要的效果该如何编写代码呢?还请多多指教。
注:配图右图是我想要的效果,图里面的数值是我标注的坐标,和实际编程后出现的效果(左图)。

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

public class ExampleFrame_0333 extends JFrame {
private JButton okbutton;
private JButton addbutton;
private JTable table;

public static void main(String args[]) {
ExampleFrame_0333 frame = new ExampleFrame_0333();
frame.setVisible(true);
}

public ExampleFrame_0333() {
super();
setTitle("使用网格组布局管理器");
getContentPane().setLayout(new GridBagLayout());
setBounds(100, 100, 500, 370);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

table=new JTable();
table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
table.setEnabled(true);
DefaultTableModel dftm=(DefaultTableModel) table.getModel();
dftm.setColumnIdentifiers(new String[] {"型号","线别","站位","原始部番"});
dftm.addRow(new Vector());
table.setModel(dftm);

JScrollPane scrollpane=new JScrollPane(table);
GridBagConstraints gridbagconstraints_1=new GridBagConstraints();
gridbagconstraints_1.gridx=0;
gridbagconstraints_1.gridy=0;
gridbagconstraints_1.gridwidth=9;
gridbagconstraints_1.gridheight=9;
gridbagconstraints_1.weightx=1.0;
gridbagconstraints_1.weighty=1.0;
gridbagconstraints_1.fill=GridBagConstraints.BOTH;
gridbagconstraints_1.insets=new Insets(3,3,3,3);
getContentPane().add(scrollpane,gridbagconstraints_1);

addbutton=new JButton("添加");
GridBagConstraints gridbagconstraints_2=new GridBagConstraints();
gridbagconstraints_2.gridx=11;
gridbagconstraints_2.gridy=7;
gridbagconstraints_2.insets=new Insets(3,3,3,3);
getContentPane().add(addbutton,gridbagconstraints_2);
addbutton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
DefaultTableModel model=(DefaultTableModel) table.getModel();
model.addRow(new Vector());

}

});

okbutton=new JButton("完成");
GridBagConstraints gridbagconstraints_3=new GridBagConstraints();
gridbagconstraints_3.gridx=11;
gridbagconstraints_3.gridy=9;
gridbagconstraints_3.insets=new Insets(3,3,3,3);
gridbagconstraints_1.fill=GridBagConstraints.VERTICAL;
getContentPane().add(okbutton,gridbagconstraints_3);
}

}
...全文

相关推荐

评论 7
收藏 已收藏
分享
返回顶部
wkc720
Java SE 62,621 成员 307,251 内容