我在JPANEL中用GridBagLayout布局管理器,使用间距insets怎么没效果?

解决方案 »

  1.   

    Jpanel里面直接使用绝对布局来解决。
    insets这个方法我没用过。楼主如果有例子可以发一下,我挺喜欢看些GUI内容的。
      

  2.   

    class calButton extends JButton
    {
    Font f=new Font("仿宋",Font.BOLD,25);
    public calButton(String title,Color cl)
    {
    super(title);
    setBackground(cl);
    setPreferredSize(new Dimension(37,32));
    setFont(f);
    setFocusable(false);
    }
    }
    class myCanvas extends JPanel implements ActionListener  {
    Color cl=new Color(216,230,230);
    calButton cbMl=new calButton("MC",cl);
    calButton cbMr=new calButton("MR",cl);
    calButton cbMs=new calButton("MS",cl);
    calButton cbMa=new calButton("M+",cl);
    calButton cbMc=new calButton("M-",cl);
             JTextField jtf=new JTextField(".0",32);
           public myCanvas()
    {

    init();

    this.setVisible(true);
    }

    public void init()
    {
    GridBagLayout gbg=new GridBagLayout();
    GridBagConstraints gc=new GridBagConstraints();
    jtf.setBackground(Color.red);
    jtf.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
    jtf.setHorizontalAlignment(JTextField.RIGHT);
    this.setLayout(gbg);
    this.add(jtf);
    this.add(cbMl);
    this.add(cbMr);
    this.add(cbMs);
    this.add(cbMa);
    this.add(cbMc);
    gc.gridx=0;
            gc.gridy=0;
            gc.gridheight=10;
            gc.gridwidth=20;
            gc.insets=new Insets(1,2,0,2);
            gbg.setConstraints(jtf, gc); gc.gridx=0;
    gc.gridy=10;
    gc.gridwidth=4;
    gc.gridheight=4;
    gc.insets=new Insets(1,2,0,2);
    gbg.setConstraints(cbMl, gc);
    gc.gridx=4;
    gc.gridy=10;
    gc.gridwidth=4;
    gc.gridheight=4;
    gc.insets=new Insets(1,2,0,2);
    gbg.setConstraints(cbMr, gc);
    gc.gridx=8;
    gc.gridy=10;
    gc.gridwidth=4;
    gc.gridheight=4;
    gc.insets=new Insets(1,2,0,2);
    gbg.setConstraints(cbMs, gc);
    gc.gridx=12;
    gc.gridy=10;
    gc.gridwidth=4;
    gc.gridheight=4;
           gc.insets=new Insets(1,2,0,2);
           gbg.setConstraints(cbMa, gc);
           gc.gridx=16;
           gc.gridy=10;
           gc.gridwidth=4;
           gc.gridheight=4;
           gc.insets=new Insets(1,2,0,2);
           gbg.setConstraints(cbMc, gc);

    }
    以上是我写的继承JPANEL类代码,把它实例化加入窗体后,设置Insets都没什么改变