Gå til innhold

Texteditor! Problem med fileOpen


Anbefalte innlegg

Skrevet

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:

Videoannonse
Annonse
Skrevet

Tja, du peker på noe som ikke eksisterer...

 

Resten er bare hendelsesforløpet fra hvor kallene kommer fra..

 

Men hvis du også poster koden din, eller i det minste den relevante delen, så kan vi nok hjelpe deg med å finne hva som er feil...

Skrevet (endret)

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
Skrevet

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.
Skrevet (endret)

det er akkurat det som står på 213! hehe ;)

men hvor skal jeg sette inn

jFileChooser1 = new JFileChooser?

Endret av RuZleBIFf
Skrevet

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! :(

Skrevet (endret)

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
Skrevet

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.

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...