swing - Menubar not added in a java split pane -
i have written small test program creates split pane in 1 of pane's text area. have added meubar , menuitems pane donot see them in gui created.
could pls point out wrong thing did on here in below program:
import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import javax.swing.jmenubar; import java.util.*; import javax.swing.text.badlocationexception; import java.awt.*; import java.io.ioexception; //splitpanedemo not visible component. public class splitpanedemo extends jframe implements actionlistener { private jtextarea ta; private jmenubar menub; private jmenu dbm; private jmenuitem cnadb,bsmdb,cdmdb; private jlabel picture; private jsplitpane splitpane; public splitpanedemo() { ta = new jtextarea(); //textarea ta.setlinewrap(true); ta.setwrapstyleword(true); ta.addkeylistener(new keyadapter() { public void keypressed(keyevent ke ) { int code = ke.getkeycode(); int modifiers = ke.getmodifiers(); if(code == keyevent.vk_enter && modifiers == keyevent.ctrl_mask) { system.out.println("cmd in table:"); } } }); jscrollpane tapane = new jscrollpane(ta); picture = new jlabel(); picture.setfont(picture.getfont().derivefont(font.italic)); picture.sethorizontalalignment(jlabel.center); jscrollpane picturescrollpane = new jscrollpane(picture); splitpane = new jsplitpane(jsplitpane.vertical_split, tapane, picturescrollpane); splitpane.setonetouchexpandable(true); splitpane.setdividerlocation(450); //provide minimum sizes 2 components in split pane. dimension minimumsize = new dimension(100, 100); tapane.setminimumsize(minimumsize); picturescrollpane.setminimumsize(minimumsize); //provide preferred size split pane. splitpane.setpreferredsize(new dimension(900, 900)); menub = new jmenubar(); //menubar dbm = new jmenu("db"); //file menu cnadb = new jmenuitem("cna"); bsmdb = new jmenuitem("bsm"); cdmdb = new jmenuitem("cdm"); setjmenubar(menub); menub.add(dbm); dbm.add(cnadb); dbm.add(bsmdb); dbm.add(cdmdb); cnadb.addactionlistener(this); bsmdb.addactionlistener(this); cdmdb.addactionlistener(this); setvisible(true); } public void actionperformed(actionevent e) { } public void valuechanged(listselectionevent e) { } public jsplitpane getsplitpane() { return splitpane; } private static void createandshowgui() { //create , set window. jframe frame = new jframe("splitpanedemo"); frame.setdefaultcloseoperation(jframe.exit_on_close); splitpanedemo splitpanedemo = new splitpanedemo(); frame.getcontentpane().add(splitpanedemo.getsplitpane()); //display window. frame.pack(); frame.setvisible(true); } public static void main(string[] args) { //schedule job event-dispatching thread: //creating , showing application's gui. javax.swing.swingutilities.invokelater(new runnable() { public void run() { createandshowgui(); } }); } }
you add jmenubar in splitpanedemo class, when call createandshowgui, make new jframe , add splitpane call getsplitpane. new frame has no knowledge of menu bar.
if extending jframe in splitpanedemo, why not use make frame gui?
Comments
Post a Comment