swing - Java - Two Codes Comparison with GridBagLayout - IllegalArgumentException -


i tested code gridbaglayout, wonder why there's error code isn't code. code got exception illegalargumentexception: cannot add layout: constraint must string (or null):

import java.awt.*; import javax.swing.*; import java.awt.event.*;  public class layout extends jframe {     gridbag g=new gridbag();      public layout()     {         add(g, borderlayout.center);     }      public static void main(string[]args)     {         layout lay=new layout();         lay.setsize(500, 500);         lay.setdefaultcloseoperation(jframe.exit_on_close);         lay.setlocationrelativeto(null);         lay.setvisible(true);     }      class gridbag extends jpanel     {         private jlabel label=new jlabel("test");          public gridbag()         {             setlayout(new gridbaglayout());              gridbagconstraints gbc=new gridbagconstraints();                         container container=getcontentpane();                        addc(label, container, gbc, 0, 0, 1, 4, 0, 0);                   }          private void addc(component c, container container, gridbagconstraints gbc, int c, int r, int nc, int nr, double wx, double wy )         {             gbc.gridx=c;             gbc.gridy=r;             gbc.gridwidth=nc;             gbc.gridheight=nr;             gbc.weightx=wx;             gbc.weighty=wy;              container.add(c, gbc);         }     } } 

but code worked:

import java.awt.*; import javax.swing.*; import java.awt.event.*;  class gridbag extends jpanel {     private jlabel label=new jlabel("test");      public gridbag()     {         setlayout(new gridbaglayout());          gridbagconstraints gbc=new gridbagconstraints();                     container container=this;         addc(label, container, gbc, 0, 0, 1, 4, 0, 0);               }      private void addc(component c, container container, gridbagconstraints gbc, int c, int r, int nc, int nr, double wx, double wy )     {         gbc.gridx=c;         gbc.gridy=r;         gbc.gridwidth=nc;         gbc.gridheight=nr;         gbc.weightx=wx;         gbc.weighty=wy;          container.add(c, gbc);     }      public static void main(string[]args)     {         gridbag g=new gridbag();         jframe frm=new jframe();         frm.setsize(500, 500);         frm.add(g, borderlayout.center);         frm.setdefaultcloseoperation(jframe.exit_on_close);         frm.setlocationrelativeto(null);         frm.setvisible(true);     } } 

one of difference there's new layout class jframe , second code use jframe directly.

the problem here , 1 more difference between 2 versions.

container container=getcontentpane(); 

try

container container=this;       

Comments

Popular posts from this blog

PHPMotion implementation - URL based videos (Hosted on separate location) -

javascript - Using Windows Media Player as video fallback for video tag -

c# - Unity IoC Lifetime per HttpRequest for UserStore -