JTextField没有正确填充显示

时间:2017-03-04 01:01:47

标签: java user-interface jtextfield gridbaglayout

我尝试使用JTEXTField添加文本字段,我使用的布局是GridBagLayout,但由于某种原因,文本字段填满了顶部区域。我已经花了大约2个小时在这上面,我找不到它为什么这样做的原因

这是我的问题

public class Calculator extends JPanel implements ActionListener {

    public static final long serialVersionUID = 1L;

    public static final int WIDTH = 800;
    public static final int HIGHT = 300;   
    private GridBagLayout layout;
    private GridBagConstraints gbConstraints;

    public Calculator(){

        setPreferredSize(new Dimension(WIDTH, HIGHT));
        layout = new GridBagLayout();

        setLayout(layout);

        gbConstraints = new GridBagConstraints();

        JTextField jt = new JTextField(null,20);

        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.weighty = 1;
        gbConstraints.gridx = 0;
        gbConstraints.gridy = 0;
        this.add(jt, gbConstraints);

        JButton btnQuot = new JButton("Quot");
        btnQuot.setPreferredSize(new Dimension(55, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 2;
        gbConstraints.gridy = 4;
        btnQuot.addActionListener(this);
        this.add(btnQuot, gbConstraints);

        JButton btnMod = new JButton("Mod");
        btnMod.setPreferredSize(new Dimension(55, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 3;
        gbConstraints.gridy = 4;
        btnMod.addActionListener(this);
        this.add(btnMod, gbConstraints);

        JButton btnA = new JButton("A");
        btnA.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 4;
        gbConstraints.gridy = 4;
        btnA.addActionListener(this);
        this.add(btnA, gbConstraints);

        JButton btnBlank = new JButton("");
        btnBlank.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 5;
        gbConstraints.gridy = 4;
        this.add(btnBlank, gbConstraints);

        JButton btnBlank1 = new JButton("");
        btnBlank1.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 6;
        gbConstraints.gridy = 4;
        this.add(btnBlank1, gbConstraints);

        JButton btnBlank2 = new JButton("");
        btnBlank2.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 7;
        gbConstraints.gridy = 4;
        this.add(btnBlank2, gbConstraints);

        JButton btnBlank3 = new JButton("");
        btnBlank3.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 8;
        gbConstraints.gridy = 4;
        this.add(btnBlank3, gbConstraints);

        JButton btnBlank4 = new JButton("");
        btnBlank4.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 9;
        gbConstraints.gridy = 4;
        this.add(btnBlank4, gbConstraints);

        JButton btnBlank5 = new JButton("");
        btnBlank5.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 2;
        gbConstraints.gridy = 5;
        this.add(btnBlank5, gbConstraints);

        JButton btnBlank6 = new JButton("");
        btnBlank6.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 3;
        gbConstraints.gridy = 5;
        this.add(btnBlank6, gbConstraints);

        JButton btnB = new JButton("B");
        btnB.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 4;
        gbConstraints.gridy = 5;
        btnB.addActionListener(this);
        this.add(btnB, gbConstraints);

        JButton backSpace = new JButton("←");
        backSpace.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 5;
        gbConstraints.gridy = 5;
        backSpace.addActionListener(this);
        this.add(backSpace, gbConstraints);

        JButton btnCE = new JButton("CE");
        btnCE.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 6;
        gbConstraints.gridy = 5;
        btnCE.addActionListener(this);
        this.add(btnCE, gbConstraints);

        JButton btnClear = new JButton("C");
        btnClear.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 7;
        gbConstraints.gridy = 5;
        btnClear.addActionListener(this);
        this.add(btnClear, gbConstraints);

        JButton btnPlusMinus = new JButton("+/-");
        btnPlusMinus.setPreferredSize(new Dimension(55, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 8;
        gbConstraints.gridy = 5;
        btnPlusMinus.addActionListener(this);
        this.add(btnPlusMinus, gbConstraints);

        JButton btnSqrt = new JButton("√");
        btnSqrt.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 9;
        gbConstraints.gridy = 5;
        btnSqrt.addActionListener(this);
        this.add(btnSqrt, gbConstraints);

        JButton btnBlank7 = new JButton("");
        btnBlank7.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 2;
        gbConstraints.gridy = 6;
        this.add(btnBlank7, gbConstraints);

        JButton btnBlank8 = new JButton("");
        btnBlank8.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 3;
        gbConstraints.gridy = 6;
        this.add(btnBlank8, gbConstraints);

        JButton btnC = new JButton("C");
        btnC.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 4;
        gbConstraints.gridy = 6;
        btnC.addActionListener(this);
        this.add(btnC, gbConstraints);


        JButton btn7 = new JButton("7");
        btn7.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 5;
        gbConstraints.gridy = 6;
        btn7.addActionListener(this);
        this.add(btn7, gbConstraints);

        JButton btn8 = new JButton("8");
        btn8.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 6;
        gbConstraints.gridy = 6;
        btn8.addActionListener(this);
        this.add(btn8, gbConstraints);

        JButton btn9 = new JButton("9");
        btn9.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 7;
        gbConstraints.gridy = 6;
        btn9.addActionListener(this);
        this.add(btn9, gbConstraints);

        JButton btnDivid = new JButton("/");
        btnDivid.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 8;
        gbConstraints.gridy = 6;
        btnDivid.addActionListener(this);
        this.add(btnDivid, gbConstraints);

        JButton btnPercent = new JButton("%");
        btnPercent.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 9;
        gbConstraints.gridy = 6;
        btnPercent.addActionListener(this);
        this.add(btnPercent, gbConstraints);

        JButton  btnBlank9 = new JButton("");
        btnBlank9.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 2;
        gbConstraints.gridy = 7;
        this.add(btnBlank9, gbConstraints);

        JButton btnBlank10 = new JButton("");
        btnBlank10.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 3;
        gbConstraints.gridy = 7;
        this.add(btnBlank10, gbConstraints);

        JButton btnD = new JButton("D");
        btnD.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 4;
        gbConstraints.gridy = 7;
        btnD.addActionListener(this);
        this.add(btnD, gbConstraints);


        JButton btn4 = new JButton("4");
        btn4.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 5;
        gbConstraints.gridy = 7;
        btn4.addActionListener(this);
        this.add(btn4, gbConstraints);

        JButton  btn5= new JButton("5");
        btn5.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 6;
        gbConstraints.gridy = 7;
        btn5.addActionListener(this);
        this.add(btn5, gbConstraints);

        JButton btn6 = new JButton("6");
        btn6.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 7;
        gbConstraints.gridy = 7;
        btn6.addActionListener(this);
        this.add(btn6, gbConstraints);

        JButton btnMult = new JButton("*");
        btnMult.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 8;
        gbConstraints.gridy = 7;
        btnMult.addActionListener(this);
        this.add(btnMult, gbConstraints);

        JButton btn1_OverX = new JButton("1/x");
        btn1_OverX.setPreferredSize(new Dimension(50, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 9;
        gbConstraints.gridy = 7;
        btn1_OverX.addActionListener(this);
        this.add(btn1_OverX, gbConstraints);

        JButton btnBlank11 = new JButton("");
        btnBlank11.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 2;
        gbConstraints.gridy = 8;
        this.add(btnBlank11, gbConstraints);

        JButton btnBlank12 = new JButton("");
        btnBlank12.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 3;
        gbConstraints.gridy = 8;
        this.add(btnBlank12, gbConstraints);

        JButton btnE = new JButton("E");
        btnE.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 4;
        gbConstraints.gridy = 8;
        btnE.addActionListener(this);
        this.add(btnE, gbConstraints);


        JButton btn1 = new JButton("1");
        btn1.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 5;
        gbConstraints.gridy = 8;
        btn1.addActionListener(this);
        this.add(btn1, gbConstraints);

        JButton btn2 = new JButton("2");
        btn2.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 6;
        gbConstraints.gridy = 8;
        btn2.addActionListener(this);
        this.add(btn2, gbConstraints);

        JButton btn3  = new JButton("3");
        btn3.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 7;
        gbConstraints.gridy = 8;
        btn3.addActionListener(this);
        this.add(btn3, gbConstraints);

        JButton btnMinus = new JButton("-");
        btnMinus.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 8;
        gbConstraints.gridy = 8;
        btnMinus.addActionListener(this);
        this.add(btnMinus, gbConstraints);

        JButton btnEquals = new JButton("=");
        btnEquals.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.VERTICAL;
        gbConstraints.gridheight = 2;
        gbConstraints.gridx = 9;
        gbConstraints.gridy = 8;
        btnEquals.addActionListener(this);
        this.add(btnEquals, gbConstraints);

        gbConstraints.gridheight = 1;

        JButton btnBlank13 = new JButton("");
        btnBlank13.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 2;
        gbConstraints.gridy = 9;
        this.add(btnBlank13, gbConstraints);

        JButton btnBlank14 = new JButton("");
        btnBlank14.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 3;
        gbConstraints.gridy = 9;
        this.add(btnBlank14, gbConstraints);

        JButton  btnF= new JButton("F");
        btnF.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 4;
        gbConstraints.gridy = 9;
        btnF.addActionListener(this);
        this.add(btnF, gbConstraints);


        JButton btn0 = new JButton("0");
        btn0.setPreferredSize(new Dimension(90, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridwidth = 2;
        gbConstraints.gridx = 5;
        gbConstraints.gridy = 9;
        btn0.addActionListener(this);
        this.add(btn0, gbConstraints);

        gbConstraints.gridwidth = 1;

        JButton btnDecimal = new JButton(".");
        btnDecimal.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 7;
        gbConstraints.gridy = 9;
        btnDecimal.addActionListener(this);
        this.add(btnDecimal, gbConstraints);

        JButton btnPlus = new JButton("+");
        btnPlus.setPreferredSize(new Dimension(45, 30));
        gbConstraints.fill = GridBagConstraints.CENTER;
        gbConstraints.gridx = 8;
        gbConstraints.gridy = 9;
        btnPlus.addActionListener(this);
        this.add(btnPlus, gbConstraints);        

    }

    public static void main(String[] args){

        JFrame frame = new JFrame("My Programmer Calculator");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setResizable(false);
        frame.setLayout(new BorderLayout());
        frame.add(new Calculator(), BorderLayout.CENTER);
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);     

    }

    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub

    }
}

0 个答案:

没有答案