Java JPanel上的GridBagLayout和BorderLayout
在下面的代码中,我有两个布局,GridBag和Border,但是,我只能使用BorderLayout将所有内容推到顶部。我还想把一切都推向西方,我不知道该怎么做。有什么想法吗 我希望所有内容都显示在JPanel的左上方Java JPanel上的GridBagLayout和BorderLayout,java,swing,awt,miglayout,Java,Swing,Awt,Miglayout,在下面的代码中,我有两个布局,GridBag和Border,但是,我只能使用BorderLayout将所有内容推到顶部。我还想把一切都推向西方,我不知道该怎么做。有什么想法吗 我希望所有内容都显示在JPanel的左上方 public class Opspanel extends JPanel{ private static final long serialVersionUID = -6393281054430179953L; public Opspanel() {
public class Opspanel extends JPanel{
private static final long serialVersionUID = -6393281054430179953L;
public Opspanel() {
JPanel gridlayout = new JPanel();
GridBagLayout layout = new GridBagLayout();
gridlayout.setLayout(layout);
GridBagConstraints c = new GridBagConstraints();
c.gridx = 0;
c.gridy = 0;
c.insets = new Insets(10,10,10,10);
c.anchor = GridBagConstraints.LINE_START;
gridlayout.add(new JLabel("Vendor ID"), c);
c.gridx = 1;
c.gridy = 0;
JTextField vendorid = new JTextField(7);
gridlayout.add(vendorid, c);
c.gridx = 0;
c.gridy = 1;
gridlayout.add(new JLabel("Email Date"), c);
c.gridx = 1;
JTextField emaildate = new JTextField(10);
gridlayout.add(emaildate, c);
c.gridx = 2;
gridlayout.add(new JLabel("Email Time"), c);
c.gridx = 3;
JTextField emailtime = new JTextField(10);
gridlayout.add(emailtime, c);
setLayout(new BorderLayout());
add(gridlayout, BorderLayout.NORTH);
}
}
非常感谢你让我的生活更轻松。它对我非常有效。不过我有一个问题。你能帮忙吗
我想要停靠在北边的“行动协调器”,我想要它垂直和水平居中。但是,我只能垂直居中
public class Opspanel extends JPanel{
private static final long serialVersionUID = -6393281054430179953L;
public Opspanel() {
MigLayout layout = new MigLayout();
setLayout(layout);
add(new JLabel("Vendor ID"), "cell 0 0");
JTextField txtVendorId = new JTextField();
add(txtVendorId, "h 20, w 100, gapleft 5, cell 1 0");
add(new JLabel("Email Date"),"cell 2 0, gapleft 5");
JTextField txtEmailDate = new JTextField();
add(txtEmailDate, "cell 3 0, h 20, w 100, gapleft 5");
add(new JLabel("Email Time"), "cell 4 0, gapleft 5");
JTextField txtEmailTime = new JTextField();
add(txtEmailTime, "cell 5 0, h 20, w 100, gapleft 5, wrap 15px");
add(new JLabel("Subject Line"), "cell 0 1");
JTextField txtSubLine = new JTextField();
add(txtSubLine, "cell 1 1, h 20, w 600, span, gapleft 5, wrap 15px");
add(new JLabel("Assigned"), "cell 0 2");
JTextField txtAssigned = new JTextField();
add(txtAssigned, "cell 1 2, h 20, w 150, gapleft 5, span 2");
add(new JLabel("M-Manager"), "cell 3 2, gapleft 5, align center");
JComboBox<String> cmbMM = new JComboBox<>();
add(cmbMM, "cell 4 2, h 20!, w 150, gapleft 5, wrap 15px, span 2");
add(new JLabel("City Name"), "cell 0 3");
JTextField txtCity = new JTextField();
add(txtCity, "cell 1 3, span 2, w 150, gapleft 5");
add(new JLabel("Region"), "cell 3 3, gapleft 5, align center");
JComboBox<String> cmbRegion = new JComboBox<>();
cmbRegion.addItem("North");
cmbRegion.addItem("South");
cmbRegion.addItem("West");
cmbRegion.addItem("East");
cmbRegion.setSelectedIndex(-1);
add(cmbRegion, "cell 4 3, h 20!, w 100, gapleft 5, wrap 15px, span 2");
add(new JLabel("OPS Coordinator"),"dock north, align center center, span, h 70!, wrap");
}
}
public类Opspanel扩展了JPanel{
私有静态最终长serialVersionUID=-6393281054430179953L;
公共Opspanel(){
MigLayout=新的MigLayout();
设置布局(布局);
添加(新的JLabel(“供应商ID”),“单元格0”);
JTextField txtVendorId=新的JTextField();
添加(TXTENDORID,“h 20,w 100,间隙5,单元格10”);
添加(新的JLabel(“电子邮件日期”),“单元格20,间隙5”);
JTextField txtEmailDate=新的JTextField();
添加(txtEmailDate,“单元30,h 20,w 100,间隙5”);
添加(新JLabel(“电子邮件时间”),“40号单元格,5号单元格”);
JTextField txtEmailTime=新的JTextField();
添加(txtEmailTime,“单元50,h 20,w 100,间隙5,包裹15px”);
添加(新JLabel(“主题行”),“单元格01”);
JTextField txtSubLine=新的JTextField();
添加(TXT子行,“单元1 1,h 20,w 600,跨度,间隙5,包裹15px”);
添加(新JLabel(“已分配”),“单元格0 2”);
JTextField txtsassigned=新JTextField();
添加(TXT,“单元1 2,h 20,w 150,间隙5,跨度2”);
添加(新JLabel(“M-Manager”),“单元格3 2,间隙5,对齐中心”);
JComboBox cmbMM=新的JComboBox();
添加(cmbMM,“单元4 2,h 20!,w 150,间隙5,包裹15px,跨度2”);
添加(新的JLabel(“城市名称”),“单元格03”);
JTextField txtCity=新的JTextField();
添加(txtCity,“第13单元,跨度2,宽150,间隙5”);
添加(新JLabel(“区域”),“单元格3,间隙5,对齐中心”);
JComboBox cmbRegion=新JComboBox();
CMB地区。附加(“北部”);
CMB地区。附加(“南”);
CMB地区。补充(“西部”);
CMB地区。补充(“东部”);
CMB区域。设置所选索引(-1);
添加(CMB区域,“单元4 3,h 20!,w 100,间隙5,包裹15px,跨度2”);
添加(新JLabel(“OPS协调员”),“船坞北,对准中心,跨度,h 70!,包裹”);
}
}
您可能希望此第三方版面管理器结合使用锚定
和weightx
和weighty