java - Utilizing GridLayout, JPanel, BorderLayout -
new gui, trying create simple jframe
2 jtextarea
instances positioned right next each other , jpanel
@ bottom.
import java.awt.*; import java.awt.event.actionlistener; import javax.swing.*; public class demo extends jframe { private jpanel panel; private jtextarea jtextarea1; private jtextarea jtextarea2; private decisionpanel decisionpanel; private gridlayout gridlayout; private container container; public demo() { super( "demo" ); container mycontainer = new container(); jtextarea1 = new jtextarea(); jtextarea2 = new jtextarea(); gridlayout gridlayout = new gridlayout( 1, 2 ); mycontainer.setlayout( gridlayout ); mycontainer.add( new jscrollpane( jtextarea1 ) ); mycontainer.add( new jscrollpane( jtextarea2 ) ); jframe f = new jframe(); f.add( mycontainer, borderlayout.center); f.add( decisionpanel, borderlayout.page_end ); f.setsize( 400, 400 ); f.setdefaultcloseoperation( jframe.exit_on_close ); f.setvisible( true ); } }
jframe
not appear. right way add jtextarea
objects gridlayout
, container
used correctly?
start not extending jframe
, causing confusion. basically, example code has 2 instances of jframe
, 1 been shown on screen when?
you must generating nullpointerexception
decisionpanel
never initialised.
public class demo { //extends jframe { private jpanel panel; private jtextarea jtextarea1; private jtextarea jtextarea2; private decisionpanel decisionpanel; private gridlayout gridlayout; private container container; public demo() { container mycontainer = new container(); decisionpanel = new decisionpanel(); jtextarea1 = new jtextarea(); jtextarea2 = new jtextarea(); gridlayout gridlayout = new gridlayout(1, 2); mycontainer.setlayout(gridlayout); mycontainer.add(new jscrollpane(jtextarea1)); mycontainer.add(new jscrollpane(jtextarea2)); jframe f = new jframe("demo"); f.add(mycontainer, borderlayout.center); f.add(decisionpanel, borderlayout.page_end); f.setsize(400, 400); f.setdefaultcloseoperation(jframe.exit_on_close); f.setvisible(true); } }
or, extend jpanel
, add demo
panel jframe
independently, might more preferable depending on trying achieve...
public class demo extends jpanel { private jpanel panel; private jtextarea jtextarea1; private jtextarea jtextarea2; private decisionpanel decisionpanel; private gridlayout gridlayout; private container container; public static void main(string[] args) { eventqueue.invokelater(new runnable() { @override public void run() { try { uimanager.setlookandfeel(uimanager.getsystemlookandfeelclassname()); } catch (classnotfoundexception | instantiationexception | illegalaccessexception | unsupportedlookandfeelexception ex) { ex.printstacktrace(); } jframe frame = new jframe("testing"); frame.setdefaultcloseoperation(jframe.exit_on_close); frame.add(new demo()); frame.pack(); frame.setlocationrelativeto(null); frame.setvisible(true); } }); } public demo() { setlayout(new borderlayout()); container mycontainer = new container(); decisionpanel = new decisionpanel(); jtextarea1 = new jtextarea(); jtextarea2 = new jtextarea(); gridlayout gridlayout = new gridlayout(1, 2); mycontainer.setlayout(gridlayout); mycontainer.add(new jscrollpane(jtextarea1)); mycontainer.add(new jscrollpane(jtextarea2)); add(mycontainer, borderlayout.center); add(decisionpanel, borderlayout.page_end); } }
Comments
Post a Comment