java - How to open the text file on the same frame when it runs first time? -


i have made small notepad demo , trying open file in same frame in main frame while opening file opens in different frame, want open in first frame opens when run program.

import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.util.*; import java.io.*;    public class demomenu extends frame     {      frame frm=new frame();      menubar bar=new menubar();      //frm.setmenubar(bar);      menu mf=new menu("file");      menu me=new menu("edit");      menu mfo=new menu("format");      menu mv=new menu("view");      menu mh=new menu("help");       menuitem mf1=new menuitem("new"+"     "+"ctrl+n");      menuitem mf2=new menuitem("open..."+"     "+"ctrl+o");      menuitem mf3=new menuitem("save"+"     "+"ctrl+s");      menuitem mf4=new menuitem("save as...");      menuitem mf5=new menuitem("page setup...");      menuitem mf6=new menuitem("print..."+"     "+"ctrl+p");      menuitem mf7=new menuitem("exit");      menuitem me1=new menuitem("undo"+"     "+"ctrl+z");     menuitem me2=new menuitem("cut"+"     "+"ctrl+x");     menuitem me3=new menuitem("copy"+"     "+"ctrl+c");     menuitem me4=new menuitem("paste"+"     "+"ctrl+v");     menuitem me5=new menuitem("delete"+"     "+"del" );     menuitem me6=new menuitem("find..."+"     "+"ctrl+f");     menuitem me7=new menuitem("find next"+"     "+"f3");     menuitem me8=new menuitem("replace..."+"     "+"ctrl+h");     menuitem me9=new menuitem("go to"+"     "+"ctrl+g");     menuitem me10=new menuitem("select all"+"     "+"ctrl+a");     menuitem me11=new menuitem("date/time"+"     "+"f5");      menuitem mfo1=new menuitem("word wrap");     menuitem mfo2=new menuitem("font...");      menuitem mv1=new menuitem("status bar");      menuitem mh1=new menuitem("help topics");     menuitem mh2=new menuitem("about notepad");     public static void main(string args[])     {      demomenu dm=new demomenu();      }   public demomenu()     {         super("united- notepad");         setmenubar(bar);         bar.add(mf);         bar.add(me);         bar.add(mfo);         bar.add(mv);         bar.add(mh);          mf.add(mf1);         mf.add(mf2);         mf.add(mf3);         mf.add(mf4);         mf.addseparator();         mf.add(mf5);         mf.add(mf6);         mf.addseparator();         mf.add(mf7);        mf1.addactionlistener(new actionlistener() {          public void actionperformed(actionevent e) {             joptionpane smd=new joptionpane();             smd.showmessagedialog(null,"press ok open new page");         }     });        final jtextarea jta=new jtextarea(10,20);       jscrollpane scrl=new jscrollpane(jta);      frm.add(scrl);          mf2.addactionlistener(new actionlistener() {           public void actionperformed(actionevent e) {              jfilechooser chooser=new jfilechooser();          int selection=chooser.showopendialog(frm);           if(selection==jfilechooser.approve_option)             {        joptionpane.showmessagedialog(null,"so u want open file...");        frm.setsize(520,540);        frm.setvisible(true);         file file = chooser.getselectedfile();         fileinputstream fis=null;        try            {             fis=new fileinputstream(file);             byte b[]=new byte[fis.available()];              fis.read(b);             string str=new string(b);             jta.settext(str);             }           catch(exception f)            {                 f.printstacktrace();            }                }         }     });         mf3.addactionlistener(new actionlistener() {         public void actionperformed(actionevent e) {             jfilechooser chooser=new jfilechooser();             chooser.showsavedialog(null);         }      });           mf4.addactionlistener(new actionlistener() {         public void actionperformed(actionevent e) {             jfilechooser chooser=new jfilechooser();             chooser.showdialog(null,"save as");         }     });              mf7.addactionlistener(new actionlistener() {            public void actionperformed(actionevent e) {             joptionpane scd=new joptionpane();             scd.showconfirmdialog(null,"are want exit");         }     });              me.add(me1);              me.addseparator();              me.add(me2);              me.add(me3);              me.add(me4);              me.add(me5);              me.addseparator();              me.add(me6);              me.add(me7);              me.add(me8);              me.add(me9);              me.addseparator();              me.add(me10);              me.add(me11);             me11.addactionlistener(new actionlistener() {         public void actionperformed(actionevent e) {              date d1=new date();             joptionpane smddate=new joptionpane();             smddate.showmessagedialog(null,d1);         }     });            mfo.add(mfo1);           mfo.add(mfo2);            mv.add(mv1);            mh.add(mh1);           mh.addseparator();           mh.add(mh2);            setsize(520,540);           setvisible(true);    }       } 

okay, lets start here...

public class demomenu extends frame  {     frame frm=new frame(); 

you extend frame create reference frame well.

instead of using demomenu, seem using "other" frm instead...

you're mixing heavy , lightweight components (awt/swing), never going end well. instead of

  • frame, use jframe
  • menu, use jmenu
  • menuitem, use jmenuitem

which lets me introduce setdefaultcloseoperation allow define action should take place when use tries close window via "x" button...

if open stream, responsible closing (see file open method).

this should make code more like...

import java.awt.eventqueue; import java.awt.event.actionevent; import java.awt.event.actionlistener; import java.io.file; import java.io.fileinputstream; import java.util.date; import javax.swing.jfilechooser; import javax.swing.jframe; import javax.swing.jmenu; import javax.swing.jmenubar; import javax.swing.jmenuitem; import javax.swing.joptionpane; import javax.swing.jscrollpane; import javax.swing.jtextarea; import javax.swing.uimanager; import javax.swing.unsupportedlookandfeelexception;  public class demomenu extends jframe {  //    frame frm = new frame();     jmenubar bar = new jmenubar();     //frm.setjmenubar(bar);     jmenu mf = new jmenu("file");     jmenu me = new jmenu("edit");     jmenu mfo = new jmenu("format");     jmenu mv = new jmenu("view");     jmenu mh = new jmenu("help");     jmenuitem mf1 = new jmenuitem("new" + "     " + "ctrl+n");     jmenuitem mf2 = new jmenuitem("open..." + "     " + "ctrl+o");     jmenuitem mf3 = new jmenuitem("save" + "     " + "ctrl+s");     jmenuitem mf4 = new jmenuitem("save as...");     jmenuitem mf5 = new jmenuitem("page setup...");     jmenuitem mf6 = new jmenuitem("print..." + "     " + "ctrl+p");     jmenuitem mf7 = new jmenuitem("exit");     jmenuitem me1 = new jmenuitem("undo" + "     " + "ctrl+z");     jmenuitem me2 = new jmenuitem("cut" + "     " + "ctrl+x");     jmenuitem me3 = new jmenuitem("copy" + "     " + "ctrl+c");     jmenuitem me4 = new jmenuitem("paste" + "     " + "ctrl+v");     jmenuitem me5 = new jmenuitem("delete" + "     " + "del");     jmenuitem me6 = new jmenuitem("find..." + "     " + "ctrl+f");     jmenuitem me7 = new jmenuitem("find next" + "     " + "f3");     jmenuitem me8 = new jmenuitem("replace..." + "     " + "ctrl+h");     jmenuitem me9 = new jmenuitem("go to" + "     " + "ctrl+g");     jmenuitem me10 = new jmenuitem("select all" + "     " + "ctrl+a");     jmenuitem me11 = new jmenuitem("date/time" + "     " + "f5");     jmenuitem mfo1 = new jmenuitem("word wrap");     jmenuitem mfo2 = new jmenuitem("font...");     jmenuitem mv1 = new jmenuitem("status bar");     jmenuitem mh1 = new jmenuitem("help topics");     jmenuitem mh2 = new jmenuitem("about notepad");      public static void main(string args[]) {         eventqueue.invokelater(new runnable() {             @override             public void run() {                 try {                     uimanager.setlookandfeel(uimanager.getsystemlookandfeelclassname());                 } catch (classnotfoundexception | instantiationexception | illegalaccessexception | unsupportedlookandfeelexception ex) {                 }                  demomenu dm = new demomenu();             }         });      }      public demomenu() {         super("united- notepad");         setdefaultcloseoperation(exit_on_close);         setjmenubar(bar);         bar.add(mf);         bar.add(me);         bar.add(mfo);         bar.add(mv);         bar.add(mh);          mf.add(mf1);         mf.add(mf2);         mf.add(mf3);         mf.add(mf4);         mf.addseparator();         mf.add(mf5);         mf.add(mf6);         mf.addseparator();         mf.add(mf7);           mf1.addactionlistener(new actionlistener() {             public void actionperformed(actionevent e) {                 joptionpane smd = new joptionpane();                 smd.showmessagedialog(null, "press ok open new page");              }         });          final jtextarea jta = new jtextarea(10, 20);         jscrollpane scrl = new jscrollpane(jta);         add(scrl);          mf2.addactionlistener(new actionlistener() {             public void actionperformed(actionevent e) {                  jfilechooser chooser = new jfilechooser();                 int selection = chooser.showopendialog(demomenu.this);                 if (selection == jfilechooser.approve_option) {                      joptionpane.showmessagedialog(null, "so u want open file...");                     file file = chooser.getselectedfile();                     fileinputstream fis = null;                     try {                         fis = new fileinputstream(file);                         byte b[] = new byte[fis.available()];                         fis.read(b);                         string str = new string(b);                         jta.settext(str);                     } catch (exception f) {                         f.printstacktrace();                     } {                         try {                             fis.close();                         } catch (exception exp) {                         }                     }                 }             }         });          mf3.addactionlistener(new actionlistener() {             public void actionperformed(actionevent e) {                 jfilechooser chooser = new jfilechooser();                 chooser.showsavedialog(null);             }         });           mf4.addactionlistener(new actionlistener() {             public void actionperformed(actionevent e) {                 jfilechooser chooser = new jfilechooser();                 chooser.showdialog(null, "save as");             }         });          mf7.addactionlistener(new actionlistener() {             public void actionperformed(actionevent e) {                 joptionpane scd = new joptionpane();                 scd.showconfirmdialog(null, "are want exit");             }         });         me.add(me1);         me.addseparator();         me.add(me2);         me.add(me3);         me.add(me4);         me.add(me5);         me.addseparator();         me.add(me6);         me.add(me7);         me.add(me8);         me.add(me9);         me.addseparator();         me.add(me10);         me.add(me11);         me11.addactionlistener(new actionlistener() {             public void actionperformed(actionevent e) {                 date d1 = new date();                 joptionpane smddate = new joptionpane();                 smddate.showmessagedialog(null, d1);              }         });          mfo.add(mfo1);         mfo.add(mfo2);          mv.add(mv1);          mh.add(mh1);         mh.addseparator();         mh.add(mh2);          setsize(520, 540);         setvisible(true);     } } 

Comments