Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPanel上的GridBagLayout和BorderLayout_Java_Swing_Awt_Miglayout - Fatal编程技术网

Java JPanel上的GridBagLayout和BorderLayout

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() {

在下面的代码中,我有两个布局,GridBag和Border,但是,我只能使用BorderLayout将所有内容推到顶部。我还想把一切都推向西方,我不知道该怎么做。有什么想法吗

我希望所有内容都显示在JPanel的左上方

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