PDA

Visualizza la versione completa : Come si crea un nuovo file in java


abcd1000
02-09-2003, 01:21
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

patrix.999
02-09-2003, 10:54
Prova a modificare il main in questo modo:

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

abcd1000
02-09-2003, 11:09
fatto non cambiato nulla

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

abcd1000
02-09-2003, 19:35
help

abcd1000
03-09-2003, 15:32
nessuna idea?

javamen
03-09-2003, 20:48
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 :ciauz:

abcd1000
03-09-2003, 23:53
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?

Angelo1974
04-09-2003, 00:20
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 :ciauz:

abcd1000
04-09-2003, 01:30
la soluzione di sbiancare sicuramente migliore della mia
per sbiancare una JTextArea come si fa?

e per sbiancare un JTextPane?

abcd1000
04-09-2003, 10:35
mi interessa soprattutto sbiancare un JTextPane

Loading