标签不垂直显示,并且gc.weightx和gc.weighty的值不起作用

时间:2017-11-13 12:33:19

标签: java user-interface

##这是SubPaneli类。

当我只放置两个标签时,标签会垂直显示我想要的但是当我放置第三个标签时,它会垂直移动并且在那个weightx的顶部并且重量不起作用我已经附加了代码结果的图像。我正在使用网格布局。我使用它错了或什么?我想要一些帮助

    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;

    import javax.swing.*;
    import javax.swing.border.Border;

    class SubPanelI extends JPanel {
        JLabel Title,Ylabel,Xlabel,Xstart,Xinterval;
        JTextField Ylabelf,Xlabelf,Xstartf,Xintervalf;

        public SubPanelI()
        {

        Dimension dim = getPreferredSize();
        dim.width=400;
        setPreferredSize(dim);
        Border innerBorder = BorderFactory.createTitledBorder("LABEL");
        Border outerBorder = BorderFactory.createEmptyBorder(5,5,5,5);
        setBorder(BorderFactory.createCompoundBorder(outerBorder,innerBorder));
    //  Title= new JLabel("Tile:");

        Ylabel = new JLabel("YLabel: ");
        Ylabelf = new JTextField(10);

        Xlabel= new JLabel("XLabel: ");
        Xlabelf = new JTextField(10);

        Xinterval = new JLabel("XInterval: ");
        Xintervalf = new JTextField(10);



        setLayout(new GridBagLayout()); 
        GridBagConstraints gc =  new GridBagConstraints();


        /////////////////first row/////////////////////////////

        gc.weightx=1;
        gc.weighty=0.1;
        gc.gridx=0;
        gc.gridy=0;
        gc.fill = GridBagConstraints.NONE;
        gc.anchor =GridBagConstraints.LINE_END;
        add(Ylabel, gc);


        gc.gridx =1;
        gc.gridy =0;

        gc.anchor =GridBagConstraints.LINE_START;
        add(Ylabelf, gc);

        ////////////////Second row/////////////////////////
        gc.weightx=1;
        gc.weighty=0.1;                                                                                  ;
        gc.gridx =0;
        gc.gridy =1;
        gc.anchor =GridBagConstraints.LINE_END;
        add(Xlabel, gc);

        gc.gridx =1;
        gc.gridy =1;
        gc.anchor =GridBagConstraints.LINE_START;
        add(Xlabelf, gc);

        ///////////////third row///////////////////////
        gc.weightx=1;
        gc.weighty=1.0;
        gc.gridx =2;
        gc.gridy =1;
        gc.anchor =GridBagConstraints.LINE_END;
        add(Xinterval);

        gc.gridx =1;
        gc.gridy =2;
        gc.anchor =GridBagConstraints.LINE_START;
        add(Xintervalf);




        }
    }

enter image description here

0 个答案:

没有答案