Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente bannato
    Registrato dal
    Sep 2006
    Messaggi
    179

    [java] problemi con la text area

    ho un problem... nn riesco a visualizzare un file nella text area
    cme posso fare vi posto il codice:
    un ragazzo mi ha fornito dei cambiamenti ma continua a dare errori.... gli errori li da nel momento in cui apro il file con il file chooser...
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
    import java.io.*;

    public class SplitPane extends BaseFrame implements ActionListener{

    JLabel fileName;
    JScrollPane scroll;
    JTextArea text;

    SplitPane() {

    JLabel label = new JLabel(new ImageIcon("c:/prova.jpg"));
    text = new JTextArea( 20, 40);
    text.setPreferredSize(new Dimension(200, 150));
    scroll = new JScrollPane(text);
    this.add(scroll);


    JScrollPane left = new JScrollPane(label);
    left.setPreferredSize(new Dimension(460, 704));

    JScrollPane right = new JScrollPane(text);
    right.setPreferredSize(new Dimension(800, 200));

    JSplitPane pane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, left, right);
    pane.setOneTouchExpandable(true);

    JButton button = new JButton("SELEZIONA FILE");
    button.setSize(130,40);
    button.setLocation(100,50);
    button.addActionListener(this);
    this.add(button);

    this.add(pane);
    this.pack();
    }

    public void actionPerformed(ActionEvent e) {
    JFileChooser choose = new JFileChooser();
    int result = choose.showOpenDialog(this);
    if(result == JFileChooser.APPROVE_OPTION) {
    File f = choose.getSelectedFile();
    try {
    BufferedReader rdr = new BufferedReader(new FileReader(f));
    StringBuilder sb = new StringBuilder();
    copia nik = new copia();
    nik.copia(f);
    String line = null;
    while(null != (line = rdr.readLine())) {
    sb.append(line + "\n");
    }

    rdr.close();

    fileName.setText(f.getName());
    text.setText(sb.toString());
    } catch (FileNotFoundException e1) {
    e1.printStackTrace();
    } catch (IOException ignored) {
    System.out.println(ignored.getMessage());
    }
    }
    }
    public static void main(String[] args) {
    new SplitPane();
    }

    }
    errori......
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at SplitPane.actionPerformed(SplitPane.java:58)
    at javax.swing.AbstractButton.fireActionPerformed(Abs tractButton.java:1849)
    at javax.swing.AbstractButton$Handler.actionPerformed (AbstractButton.java:2169)
    at javax.swing.DefaultButtonModel.fireActionPerformed (DefaultButtonModel.java:420)
    at javax.swing.DefaultButtonModel.setPressed(DefaultB uttonModel.java:258)
    at javax.swing.plaf.basic.BasicButtonListener.mouseRe leased(BasicButtonListener.java:234)
    at java.awt.Component.processMouseEvent(Component.jav a:5488)
    at javax.swing.JComponent.processMouseEvent(JComponen t.java:3126)
    at java.awt.Component.processEvent(Component.java:525 3)
    at java.awt.Container.processEvent(Container.java:196 6)
    at java.awt.Component.dispatchEventImpl(Component.jav a:3955)
    at java.awt.Container.dispatchEventImpl(Container.jav a:2024)
    at java.awt.Component.dispatchEvent(Component.java:38 03)
    at java.awt.LightweightDispatcher.retargetMouseEvent( Container.java:4212)
    at java.awt.LightweightDispatcher.processMouseEvent(C ontainer.java:3892)
    at java.awt.LightweightDispatcher.dispatchEvent(Conta iner.java:3822)
    at java.awt.Container.dispatchEventImpl(Container.jav a:2010)
    at java.awt.Window.dispatchEventImpl(Window.java:1774 )
    at java.awt.Component.dispatchEvent(Component.java:38 03)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java: 463)
    at java.awt.EventDispatchThread.pumpOneEventForHierar chy(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForHierarch y(EventDispatchThread.java:163)
    at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:157)
    at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:149)
    at java.awt.EventDispatchThread.run(EventDispatchThre ad.java:110)

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Sì, nel mio codice avevo commentato anche la riga dove setti il contenuto della JLabel ( fileName.setText(f.getName()) perché mi dava problemi: non è infatti inizializzata a niente (hai solo dichiarato la JLabel, ma di fatto non è stata istanziata)
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente bannato
    Registrato dal
    Sep 2006
    Messaggi
    179
    potresti spiegarmi meglio quando puoi
    p.s.programmo in java da solo 1 mese.. e nn sono espertissimo!!!

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Sì, allora tu fai una cosa del genere:
    codice:
    JLabel fName;
    e poi dopo un po' te ne esci con
    codice:
    fName.setText(....);
    La prima delle due righe sta semplicemente a dire: Esisterà un oggetto di tipo JLabel e nome fName. Altre informazioni non ne dà, non viene creato, nè chiaramente aggiunto a nessun contenitore.

    Quando provi ad eseguire la seconda riga, l'interprete si "perde" perché pur essendo stato dichiarato, l'oggeto fName non è stato di fatto inizializzato.

    Per cui da qualche parte, ad esempio nel costruttore, dovrai aggiungere un paio di righe:
    codice:
    fName = new JLabel("File: ");
    qualcheContenitore.add(fName);
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente bannato
    Registrato dal
    Sep 2006
    Messaggi
    179
    ti ringrazio, ma siccome ieri sera nn mi piaceva lascire inrisoluta la questione ho cercato di risolvere, e dopo mille tentativi ho risolto aggiungendo questa riga di codice:

    fileName = new JLabel();

    (mettendo le righe di codice che mi hai suggerito il risultato non cambia)

    sto cercando di visualizzare lo scroll ma nn ci riesco
    sto provando aggiungendo dopo la riga (di sopra) questo:

    scroll = new JScrollPane(fileName);
    this.add(scroll);

    ma nn funziona!
    p.s.
    sto facendo delle prove quindi probabilmente mi sto sbagliando inserendo queste seconde righe di codice.....

  6. #6
    Utente bannato
    Registrato dal
    Sep 2006
    Messaggi
    179


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.