PDA

Visualizza la versione completa : Implementare delle funzioni in una text area


abcd1000
15-05-2003, 09:48
Buongiorno!

Allora, ho una text area in java
All'interno di questa text area volevo implementare 2 funzionalità
La prima è che quando clicco con il tasto dx sulla text area mi compia un menu con l'opzione di copia incolla di testo

La seconda è che quando premo la combinazione di tasti
ctrl+Z
mi faccia l'operazione di undo
(Quindi se premo tre volte di seguito ctrl+Z mi annulla le ultime tre modifiche che ho fatto al testo presente all'interno della mia text area)

Sapete come posso fare tutto ciò?

thx

Xadoom
15-05-2003, 09:51
Devi gestire gli eventi da tastiera e dal mouse....per i primi devi verificare quali bottoni sono stati premuti e all'occasione ripristinare la schermata della jTextArea.
Per il mouse verifica che sia stato premuto il bottone destro ed in quale punto, poi fai comparire un menu di scelta in quelle cordinate......
ciao

abcd1000
15-05-2003, 10:06
un esempio di codice me lo potete fare plz? :)

floyd
15-05-2003, 10:29
devi usare un JPopupMenu
il copy cut paste si fa chiamando i metodi di JTextComponent
implementare un undo è complicato, http://www.javaworld.com/javaworld/jw-06-1998/jw-06-undoredo.html
:sexpulp:
:mavieni:

abcd1000
15-05-2003, 11:25
ho ho letto l'articolo sull'undo ed è veramente complesso provo a studiarmelo

per quanto riguarda l'operazione di copia e incolla potete darmi un maggior aiuto?

floyd
15-05-2003, 11:28
è facile
textArea.cut();
textArea.paste();
textArea.copy();

abcd1000
15-05-2003, 11:59
sono arrivato a questo punto



import java.awt.*;
import java.awt.event.*;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JFrame;
public class FrameDemo extends JPanel
implements ActionListener {
protected JButton b1, b2, b3;

public FrameDemo() {

b1 = new JButton("Apri una Text Area");

b1.addActionListener(this);
add(b1);
}

public void actionPerformed(ActionEvent e) {

}


public static void main(String[] args) {
JFrame frame = new JFrame("TextAreaDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOS E);
frame.setContentPane(new FrameDemo());


frame.pack();
frame.setVisible(true);
}
}
Adesso devo fare in modo che quando clicco sul pulsante si apra una text area e poi implementarci le funzioni di copia e incolla

abcd1000
15-05-2003, 12:21
ho messo

public void actionPerformed(ActionEvent e) {


JTextArea textArea = new JTextArea(50, 50);


}

ma la text area non apparea :(

abcd1000
15-05-2003, 12:57
public void actionPerformed(ActionEvent e) {

JTextArea textArea = new JTextArea(50, 50);
textArea.setVisible(true);


}

perchè non compare la text area?

floyd
15-05-2003, 13:52
public void actionPerformed(ActionEvent e) {
JTextArea textArea = new JTextArea(50, 50);
this.add(textArea);
this.repaint();
}
bisogna metterla da qualche parte
se usi un BorderLayout il metodo add con un parametro non va bene

Loading