Gå til innhold

Texteditor! Problem med fileOpen


Anbefalte innlegg

Heisann.

Jeg har nettopp begynt å programere i java (bruker Borland JBuilder)

så jeg tar noen tutorials på hjemmesiden til Borland og synes dette går ganske så bra. Men jeg driver med en texteditor, og har skrevet inn koden for å åpne ei textfil.

Det ser ut til å gå bra helt til jeg trykker på (meny)knappen "Open"

da får jeg dette i message-vinduet:

java.lang.NullPointerException

at texteditor.TextEditFrame.MenuOpen_actionPerformed(TextEditFrame.java:213)

at texteditor.TextEditFrame_MenuOpen_actionAdapter.actionPerformed(TextEditFrame.java:227)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)

at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)

at javax.swing.AbstractButton.doClick(AbstractButton.java:289)

at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1113)

at javax.swing.plaf.basic.BasicMenuItemUI$MouseInputHandler.mouseReleased(BasicMenuItemUI.java:943)

at java.awt.Component.processMouseEvent(Component.java:5100)

at java.awt.Component.processEvent(Component.java:4897)

at java.awt.Container.processEvent(Container.java:1569)

at java.awt.Component.dispatchEventImpl(Component.java:3615)

at java.awt.Container.dispatchEventImpl(Container.java:1627)

at java.awt.Component.dispatchEvent(Component.java:3477)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)

at java.awt.Container.dispatchEventImpl(Container.java:1613)

at java.awt.Window.dispatchEventImpl(Window.java:1606)

at java.awt.Component.dispatchEvent(Component.java:3477)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)

at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)

 

Noen som skjønner hva jeg har gjort feil? For det gjør ikke jeg! :p:blush:

Lenke til kommentar
Videoannonse
Annonse

okå! ;) Da skal jeg prøve å finne no relevant her da! hehe..

   void openFile(String fileName) {
     try {
         File file = new File(fileName);
         int size = (int)file.length();
         int chars_read = 0;
           FileReader in = new FileReader(file);
           char[] data = new char[size];
           while(in.ready()) {
               chars_read += in.read(data, chars_read, size - chars_read);
         }
         in.close();
           jTextArea1.setText(new String(data, 0, chars_read));
           statusBar.setText("Opened "+fileName);
       }
         catch (IOException e) {
             statusBar.setText("Error opening "+fileName);
   }
}

 

Open-knappen:

   public void MenuOpen_actionPerformed(ActionEvent e) {
       openFile(jFileChooser1.getSelectedFile().getPath());
       this.repaint();
       }
   }

 

PS: jeg har med import java.io.*;

Endret av RuZleBIFf
Lenke til kommentar

Peker jFileChooser1 på et objekt, eller er det bare en tom (NULL) refferanse? (Har du jFileChooser1 = new JFileChooser....... en eller annen plass i koden?)

 

Dersom dette

openFile(jFileChooser1.getSelectedFile().getPath());
er linje 213 i TextEditFrame.java er det nok det jeg nevner over som er problemet. Vist ikke kan du godt ta å merke koden slik at vi kan se hva som står på linje 213 i den filen.
Lenke til kommentar

Sånn står det nå:

   public void MenuOpen_actionPerformed(ActionEvent e) {
       jFileChooser1 = new JFileChooser();
       openFile(jFileChooser1.getSelectedFile().getPath());
       this.repaint();
       }
   }

Satte inn "();" etter etter linja du sa jeg skulle sette inn, fordi jbuilder klaga! :p

Men jeg får fortsatt samme feilen! :(

Lenke til kommentar

OK. Mulig den klager på getPath() siden du ikke har valgt noen fil enda. Se eksemplene jeg linket til litt lenger oppe.

 

showOpenDialog eller showSaveDialog må kjøres slik at en fil blir valgt, ellers vill getSelectedFile returnere "NULL", altså en tom refferanse. Når du prøver å bruke en refferanse som peker på "NULL" får du NullPointerException.

Endret av mar
Lenke til kommentar

Nå sier jo pdfen på side 1:

These tutorials are designed to help you quickly get comfortable with using the visual designer.
These tutorials assume you are familiar with Java and with the JBuilder IDE. For more information on these and other pertinent subjects, see below.

 

Så det er kanskje ikke så rart at du sliter litt...

Kanskje ta en titt på disse tutorialene.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...