Thursday, 15 July 2010

swing - What is the best way to create different GUI display objects and use CardLayout to switch between them? (Java) -



swing - What is the best way to create different GUI display objects and use CardLayout to switch between them? (Java) -

i wanted create simple gui programme switches between panels depending on buttons user clicked. searched around , came cardlayout beingness best suggestion.

basically in examples of cardlayout, create "card" (a jpanel) , add together each component, buttons, etc... , switch between cards.

what want create object "card" components set already, in separate class, , create instance of in main program. beginner , not know best design practices, didn't want create own class extended jpanel, pretty sure terrible design.

you if had create instance of jpanel , add together components straight it.

you need ensure custom class extends jcomponent or jpanel (preferably) , add together them container other component, example...

import java.awt.borderlayout; import java.awt.cardlayout; import java.awt.dimension; import java.awt.eventqueue; import java.awt.gridbaglayout; import java.awt.event.actionevent; import java.awt.event.actionlistener; import javax.swing.buttongroup; import javax.swing.jbutton; import javax.swing.jframe; import javax.swing.jlabel; import javax.swing.jpanel; import javax.swing.jtogglebutton; import javax.swing.uimanager; import javax.swing.unsupportedlookandfeelexception; public class testcard { public static void main(string[] args) { new testcard(); } public testcard() { eventqueue.invokelater(new runnable() { @override public void run() { seek { uimanager.setlookandfeel(uimanager.getsystemlookandfeelclassname()); } grab (classnotfoundexception | instantiationexception | illegalaccessexception | unsupportedlookandfeelexception ex) { } final cardlayout cardlayout = new cardlayout(); final jpanel cardpane = new jpanel(cardlayout); cardpane.add(new card01(), "card01"); cardpane.add(new card02(), "card02"); jtogglebutton btncard01 = new jtogglebutton("#1"); jtogglebutton btncard02 = new jtogglebutton("#2"); buttongroup bg = new buttongroup(); bg.add(btncard01); bg.add(btncard02); jpanel buttons = new jpanel(); buttons.add(btncard01); buttons.add(btncard02); btncard01.addactionlistener(new actionlistener() { @override public void actionperformed(actionevent e) { cardlayout.show(cardpane, "card01"); } }); btncard02.addactionlistener(new actionlistener() { @override public void actionperformed(actionevent e) { cardlayout.show(cardpane, "card02"); } }); btncard01.setselected(true); jframe frame = new jframe("testing"); frame.setdefaultcloseoperation(jframe.exit_on_close); frame.add(cardpane); frame.add(buttons, borderlayout.south); frame.pack(); frame.setlocationrelativeto(null); frame.setvisible(true); } }); } public class card01 extends jpanel { public card01() { setlayout(new gridbaglayout()); add(new jlabel("#1")); } @override public dimension getpreferredsize() { homecoming new dimension(200, 200); } } public class card02 extends jpanel { public card02() { setlayout(new gridbaglayout()); add(new jlabel("#2")); } @override public dimension getpreferredsize() { homecoming new dimension(200, 200); } } }

java swing user-interface jpanel cardlayout

No comments:

Post a Comment