To tentando implementar um codigo que tem a opção de fazer UNDO e REDO. Precisava que ele ocorrece em um JFRAME o undo seria realizado com um botão que eu chamarei de desfazer e o redo com outro que chamarei de refazer. Só que no método addUndoableEditListener e removeUndoableEditListener o copilador joga um esse erros >>> illegal start of expression e ‘;’ expected.
Só que eu não estou vendo sentido nesses erros já que estou apenas sobrepondo esses dois metodos de Class UndoableEditSupport
Segue o Código:
[list]import javax.swing.undo.;
import java.awt.;
import java.awt.event.;
import javax.swing.event.UndoableEditListener;
import javax.swing.undo.CannotRedoException;
import javax.swing.undo.CannotUndoException;
import javax.swing.undo.StateEdit;
import javax.swing.undo.StateEditable;
import javax.swing.undo.UndoManager;
import javax.swing.undo.UndoableEditSupport;
import javax.swing.;
class Main implements ActionListener, StateEditable {
public static void main(String[] _) throws Exception {
JFrame frame = new JFrame("Aula dia 03 abril 2009");
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
final UndoManager undo = new UndoManager();
Reprodutor rep = new Reprodutor();
Grafico graf = new Grafico(rep);
Paleta paleta = new Paleta(graf);
Container c = frame.getContentPane();
/* frame.addUndoableEditListener(new UndoableEditListener() {
public void undoableEditHappened(UndoableEditEvent evt) {
undo.addEdit(evt.getEdit());
}
});*/
public void addUndoableEditListener( UndoableEditListener l) {
undoableEditSupport.addUndoableEditListener(l);
}
public void removeUndoableEditListener(UndoableEditListener undoableEditListener) {
undoableEditSupport.removeUndoableEditListener(undoableEditListener);
}
//Container c = frame.getContentPane();
c.add(paleta,BorderLayout.WEST);
c.add(rep,BorderLayout.CENTER);
JMenuBar barra;
frame.setJMenuBar(barra = new JMenuBar());
JMenu guia;
JMenuItem item;
guia = new JMenu("Editar");
barra.add(guia);
item = new JMenuItem("Limpar");
guia.add(item);
item.addActionListener(rep);
guia = new JMenu("Arquivo");
barra.add(guia);
item = new JMenuItem("Sair");
guia.add(item);
item.addActionListener(new Main());
frame.setVisible(true);
frame.pack();
//rep.addFig(new Teste());
FigRetangulo r = new FigRetangulo(new Ponto(5,5),new Ponto(60,80));
rep.addFig(r);
rep.repaint();
FigCirculo s = new FigCirculo(new Ponto(50,50),40);
rep.addFig(s);
rep.repaint();
}
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
}//
class Teste implements Reproduzivel {
public void reproduzir(Graphics g) {
g.drawOval(20,30,50,50);
}
}
[/list]