i'm trying left align class , neutral buttons in line left card button. reason, setalignmentx shifts buttons half way. here code. there away align buttons?
private string[] listentries = {"a","a","a","a","a"}; private jbutton remove = new jbutton("remove"); private jlist list; private jbutton b1 = new jbutton("class"); private jbutton b2 = new jbutton("neutral"); private jpanel page = new jpanel(new cardlayout()); private defaultlistmodel listmodel = new defaultlistmodel(); public main () { jpanel leftpanel = new jpanel(); jpanel rightpanel = new jpanel(); rightpanel.setlayout(new boxlayout(rightpanel,boxlayout.page_axis)); leftpanel.setlayout(new boxlayout(leftpanel,boxlayout.page_axis)); rightpanel.setborder(borderfactory.createemptyborder(10,10,10,10)); leftpanel.setborder(borderfactory.createemptyborder(10, 10, 10, 10)); jlabel title = new jlabel("deck constructor", swingconstants.center); title.setborder(borderfactory.createemptyborder(10,0,0,0)); //set deck list list = new jlist(listmodel); list.setselectionmode(listselectionmodel.single_interval_selection); list.setlayoutorientation(jlist.vertical); list.setvisiblerowcount(-1); jscrollpane listscroller = new jscrollpane(list); listscroller.setpreferredsize(new dimension(150, 80)); jlabel listtitle = new jlabel("list"); listtitle.setlabelfor(list); listscroller.setalignmentx(left_alignment); rightpanel.add(listtitle); rightpanel.add(listscroller); rightpanel.add(remove); //set card selection jpanel buttonpanel = new jpanel(); buttonpanel.setalignmentx(component.right_alignment); b1.setactioncommand("class"); b2.setactioncommand("neutral"); b1.addactionlistener(this); b2.addactionlistener(this); buttonpanel.add(b1); buttonpanel.add(b2); jpanel classcards = new jpanel(new gridlayout(2,3, 10, 10)); jbutton card1 = new jbutton("card 1"); card1.addactionlistener(this); card1.setactioncommand("addcard"); jbutton card2 = new jbutton("card 2"); jbutton card3 = new jbutton("card 3"); jbutton card4 = new jbutton("card 4"); jbutton card5 = new jbutton("card 5"); jbutton card6 = new jbutton("card 6"); classcards.add(card1); classcards.add(card2); classcards.add(card3); classcards.add(card4); classcards.add(card5); classcards.add(card6); jpanel neutral = new jpanel(); neutral.setbackground(color.blue); page.add(classcards, "class"); page.add(neutral, "neutral"); leftpanel.add(buttonpanel); leftpanel.add(page); setpreferredsize(new dimension(640,640/12*9)); setdefaultcloseoperation(jframe.exit_on_close); getcontentpane().add(leftpanel,borderlayout.center); getcontentpane().add(rightpanel,borderlayout.east); getcontentpane().add(title,borderlayout.north); pack(); setvisible(true); }
it not perfect solution, can use example:
if want keep buttons default size:
jpanel buttonpanel = new jpanel(new flowlayout(flowlayout.leading,1,2));and delete:
buttonpanel.setalignmentx(component.right_alignment);if want fill
buttonpanelbuttons:jpanel buttonpanel = new jpanel(new gridlayout(1,2,2,2)); buttonpanel.setborder(new emptyborder(2,1,2,1));
in (flowlayout.leading,1,2) , in emptyborder(2,1,2,1))the 1,2 values added match buttonpanel , classcard hgap , vgap.
Comments
Post a Comment