java - Trying to add multiple JPanels into one main JPanel and set the border layout -
i working on building atm machine , having trouble setting borderlayout of multiple jpanels. trying make picture along lines of
but when run it looks this:
here code how trying this.
public main() { try { atmpicture = imageio.read(new file("atmpicture.jpg")); welcomescreen = imageio.read(new file("welcome screen.jpg")); enteraccscreen = imageio.read(new file("account number.jpg")); mainbuttons = imageio.read(new file("main screen.jpg")); withdrawscreen = imageio.read(new file("r2 click.jpg")); depositscreen = imageio.read(new file("r3 click.jpg")); transferscreen = imageio.read(new file("r4 click.jpg")); accinfoscreen = imageio.read(new file("l1 click.jpg")); withdrawscreen2 = imageio.read(new file("r2.2 click.jpg")); } catch (ioexception ex) { system.out.println("the file cannot read2"); system.exit(1); } panel1 = new jpanel(new gridlayout(4, 3)); //numpad panel2 = new jpanel(new gridlayout(3, 1)); //left 3 buttons panel3 = new jpanel(new gridlayout(3, 1)); // right 3 buttons panelmain = new jpanel(new gridlayout(0, 3)); // textfield jtf.sethorizontalalignment(swingconstants.left); jtf.setpreferredsize(new dimension(10, 10)); initbuttons(); } /** * initializes buttons , adds them */ private void initbuttons() { panel1.add(b1); panel1.add(b2); panel1.add(b3); panel1.add(b4); panel1.add(b5); panel1.add(b6); panel1.add(b7); panel1.add(b8); panel1.add(b9); panel1.add(ba); panel1.add(b0); panel1.add(bp); panel2.add(l1); panel2.add(l2); panel2.add(l3); panel3.add(r1); panel3.add(r2); panel3.add(r3); database cdata = new database(); cdata.storedata(); buttonlistener listener = new buttonlistener(cdata); b1.addactionlistener(listener); b2.addactionlistener(listener); b3.addactionlistener(listener); b4.addactionlistener(listener); b5.addactionlistener(listener); b6.addactionlistener(listener); b7.addactionlistener(listener); b8.addactionlistener(listener); b9.addactionlistener(listener); b0.addactionlistener(listener); ba.addactionlistener(listener); bp.addactionlistener(listener); l1.addactionlistener(listener); l2.addactionlistener(listener); l3.addactionlistener(listener); r1.addactionlistener(listener); r2.addactionlistener(listener); r3.addactionlistener(listener); setlayout(new borderlayout()); panelmain.add(panel1, borderlayout.page_end); panelmain.add(panel2, borderlayout.line_start); panelmain.add(panel3, borderlayout.line_end); panelmain.add(jtf, borderlayout.center); add(panelmain); } public static void main(string[] args) { swingutilities.invokelater(new runnable() { public void run() { image upper = null; image right = null; image left = null; image bottom = null; //image middle = null; jframe frame = new jframe(); try { upper = imageio.read(new file("upper portion.jpg")); right = imageio.read(new file("right portion.jpg")); left = imageio.read(new file("left portion.jpg")); bottom = imageio.read(new file("bottom portion.jpg")); //middle = imageio.read(new file("middle portion.jpg")); } catch (ioexception ex) { system.out.println("the file cannot read"); system.exit(1); } jlabel labeltop = new jlabel(new imageicon(upper)); jlabel labelright = new jlabel(new imageicon(right)); jlabel labelleft = new jlabel(new imageicon(left)); jlabel labelbottom = new jlabel(new imageicon(bottom)); //jlabel labelmiddle = new jlabel(new imageicon(middle)); labeltop.setlayout(new borderlayout()); labelright.setlayout(new borderlayout()); labelleft.setlayout(new borderlayout()); labelbottom.setlayout(new borderlayout()); //labelmiddle.setlayout(new borderlayout()); frame.add(labeltop, borderlayout.page_start); frame.add(labelleft, borderlayout.line_start); frame.add(labelright, borderlayout.line_end); frame.add(labelbottom, borderlayout.page_end); frame.add(new main(), borderlayout.center); frame.setsize(1041, 1200); frame.setvisible(true); } }); }
panelmain = new jpanel(new gridlayout(0, 3));
you set layout panelmain gridlayout();
panelmain.add(panel1, borderlayout.page_end); panelmain.add(panel2, borderlayout.line_start); panelmain.add(panel3, borderlayout.line_end); panelmain.add(jtf, borderlayout.center);
but treat panelmain borderlayout. can't randomly use borderlayout contraints.
if want panelmain use borderlayout create borderlayout:
panelmain = new jpanel(new borderlayoutlayout());
Comments
Post a Comment