java - Calling a JMenuBar from another class -
i have following code gui button on , code jmenubar.
menubartest.java
import javax.swing.*; import java.awt.*; import java.awt.event.*; import menubar.*; public class menubartest extends jframe implements actionlistener { jframe mymainwindow = new jframe("this title"); jpanel firstpanel = new jpanel(); jbutton btntest = new jbutton("refresh results"); guidmenubar mbr; public void rungui() { mymainwindow.setbounds(10, 10, 800, 800); mymainwindow.setdefaultcloseoperation(jframe.exit_on_close); mymainwindow.setlayout(new gridlayout(1,1)); createfirstpanel(); mymainwindow.getcontentpane().add(firstpanel); mymainwindow.setjmenubar(mbr.guidmenubar()); mymainwindow.setvisible(true); } public void createfirstpanel() { firstpanel.setlayout(null); btntest.setbounds(100, 100, 200, 50); btntest.addactionlistener(this); firstpanel.add(btntest); } public void actionperformed(actionevent e) { if(e.getsource() == btntest) { system.out.println("hi"); } } public static void main(string[] args) { menubartest mbt = new menubartest(); mbt.rungui(); } }
guidmenubar.java
package menubar; import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.event.*; public class guidmenubar extends jmenubar { jmenu m_popups; public jcheckboxmenuitem m_p_allpopups,m_p_namepopups,m_p_textpopups,m_p_sizepopups,m_p_tooltippopups; public guidmenubar() { setborderpainted(true); makepopupmenu(); } void makepopupmenu() { m_popups = new jmenu("pop ups"); m_popups.setmnemonic('p'); m_p_allpopups = new jcheckboxmenuitem("enable pop ups"); m_p_namepopups = new jcheckboxmenuitem("enable name pop ups"); m_p_sizepopups = new jcheckboxmenuitem("enable automatic sizing pop ups"); m_p_textpopups = new jcheckboxmenuitem("enable add contents pop ups"); m_p_tooltippopups = new jcheckboxmenuitem("enable add tooltips pop ups"); m_p_allpopups.additemlistener(new itemlistener() { public void itemstatechanged(itemevent e) { if(m_p_allpopups.getstate()) { m_p_namepopups.setstate(true); m_p_sizepopups.setstate(true); m_p_textpopups.setstate(true); m_p_tooltippopups.setstate(true); } else { m_p_namepopups.setstate(false); m_p_sizepopups.setstate(false); m_p_textpopups.setstate(false); m_p_tooltippopups.setstate(false); } } }); m_popups.add(m_p_allpopups); m_popups.addseparator(); m_popups.add(m_p_namepopups); m_popups.add(m_p_sizepopups); m_popups.add(m_p_textpopups); m_popups.add(m_p_tooltippopups); add(m_popups); } public void checkstate() { system.out.println(m_p_allpopups.getstate()); system.out.println(m_p_namepopups.getstate()); system.out.println(m_p_sizepopups.getstate()); system.out.println(m_p_textpopups.getstate()); system.out.println(m_p_tooltippopups.getstate()); } }
my aim add jmenubar
jframe
. when compile error saying can't find guidmenubar()
. appreciate help. thanks
you're trying call constructor if static method. don't. instead create instance calling constructor constructor, assign instance variable, , use it. changes:
// guidmenubar mbr; guidmenubar mbr = new guidmenubar(); // create instance , assign public void rungui() { // .... // mymainwindow.setjmenubar(mbr.guidmenubar()); mymainwindow.setjmenubar(mbr); // use instance mymainwindow.setvisible(true); }
next we'll talk evils of null
layouts , setbounds(...)
Comments
Post a Comment