Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    883

    Come si crea un nuovo file in java

    Ho scritto queste semplici linee di codice

    import javax.swing.*;
    import java.awt.event.*;

    public class Editor extends JFrame implements ActionListener{
    private JTextArea jta;

    public Editor() {
    setSize(200,200);
    JMenuBar barramenu = new JMenuBar();
    JMenu jFile = new JMenu("File");
    JMenuItem new_item = new JMenuItem("Nuovo file");
    jFile.add(new_item);
    barramenu.add(jFile);
    setJMenuBar(barramenu);

    jta = new JTextArea("jta");
    getContentPane().add(jta);

    new_item.addActionListener(this);
    setVisible(true);
    }

    public void actionPerformed(ActionEvent evento) {

    jta = new JTextArea("Nuova jta");
    getContentPane().add(jta);
    }
    public static void main(String[] args) {
    Editor e = new Editor();
    }

    }

    Il problema è questo, perchè quando premo sul bottone "nuovo file" non mi appare la jtextarea con scitto "Nuova jta" ma continua a rimanermi visualizzata la vecchia jtextarea con scritto "jta"?

    thx

  2. #2
    Prova a modificare il main in questo modo:

    public static void main(String[] args) {
    Editor e = new Editor();
    e.setVisible(true);
    }

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    883
    fatto non è cambiato nulla

    forse devo prima distruggere la vecchia jta per poterne inserire una nuova?
    ma come si fa?

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    883
    help

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    883
    nessuna idea?

  6. #6
    Il motivo credo sia dovuto al fatto che la JTextArea occupa tutto il container quindi il nuovo oggetto JTextArea viene comunque nascosto
    dal primo.

    Sinceramente non ho ben capito a cosa ti serva comunque ho provato a rimuovere prima il primo oggetto e poi a crearne uno nuovo settando nuovamente il metodo setVisible a true.

    Così facendo a me ha funzionato

    public void actionPerformed(ActionEvent evento) {
    getContentPane().remove(jta);
    jta = new JTextArea("Nuova jta");
    getContentPane().add(jta);
    setVisible(true);
    }


    Ciao

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    883
    ho letto che non hai capito a cosa mi serva una cosa del genere
    provo a spiegarmi meglio

    Se devi implementare la voce "nuovo documento" in un menu tipo un editor, le operazioni da fare sono

    1. chiudi il vecchio documento (salvandolo)
    2. crei un nuovo documento vuoto

    La prima azione corrisponde in java al metodo: remove(jta)
    la seconda azione alle istruzioni:
    new JTextAre
    add(jta)

    sbaglio qualcosa?

  8. #8
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ciao.
    Personalmente io, nel momento in cui dovessi fare un nuovo docuemnto, piuttosto che rimuovere e re-inserire tutta la JTextArea, semplicemente scaricherei il suo contenuto in una String o StringBuffer e sbiancherei la JTextArea... secondo me dovrebbe essere + veloce... cmq penso anche come hai ragionato tu si possa fare e bene... ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    883
    la soluzione di sbiancare è sicuramente migliore della mia
    per sbiancare una JTextArea come si fa?

    e per sbiancare un JTextPane?

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    883
    mi interessa soprattutto sbiancare un JTextPane

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.