Olá! Bom, tentei resolver isso de algumas maneiras, mas foi tudo em vão, então gostaria de uma ajuda mais especializada…
É o seguinte:
Eu tava fazendo um programinha que fucionaria como um notepad, seguindo um tutorial da net… só pra aprender a trabalhar com componentes gráficos e eventos…
Pois bem. Tudo ia bem até que eu fui criar os botões de novo e salvar. As coisas que eu faço simplesmente não funcionam, e quando compilam, não executam os menus e tal, e também só compila sem a chave de finalização da classe.
Eu sou bem iniciante nisso, portanto eu não sei se eu deveria ter criado as classes das actions em outro arquivo ou se fiz bem em deixar no mesmo, vou postar o código pra entederem melhor o que eu preciso.
[code]import java.awt.;
import java.awt.event.;
import javax.swing.;
import javax.swing.event.;
public class MeuNote extends JFrame{
//Componentes que vão estar no container.
private JToolBar toolbar = new JToolBar("Ferramentas");
private JMenuBar menubar = new JMenuBar();
private JMenu arquivo = new JMenu ("Arquivo");
private JTextArea texto = new JTextArea();
//Ações a serem realizadas.
private Action novo = new NovoAction (this.texto);
private Action salvar = new SalvarAction (this.texto);
//Construtor
public MeuNote(){
super("Bloco de Notas do Michael");
this.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
Container interno = this.getContentPane();
this.montaMenu();
this.montaToolBar();
this.montaGUI(interno);
}
//Métodos de criação
private void montaMenu(){
JMenuItem itemNovo = new JMenuItem (this.novo);
JMenuItem itemSalvar = new JMenuItem (this.salvar);
this.arquivo.add (itemNovo);
this.arquivo.add (itemSalvar);
this.menubar.add (this.arquivo);
this.setJMenuBar (this.menubar);
}
private void montaToolBar(){
this.toolbar.add(this.novo);
this.toolbar.add(this.salvar);
}
private void montaGUI (Container interno) {
interno.setLayout (new BorderLayout ());
interno.add (this.toolbar, BorderLayout.NORTH);
interno.add (new JScrollPane (this.texto));
}
//Classes NOVO,SALVAR
//NOVO
public class NovoAction extends AbstractAction{
private JTextArea texto;
public NovoAction (JTextArea texto){
super ("Novo");
this.putValue (Action.SMALL_ICON, new ImageIcon ("new.gif"));
this.putValue (Action.SHORT_DESCRIPTION, "Limpa área do texto");
}
public void actionPerformed (ActionEvent ev){
this.texto.setText("");
}
}
//SALVAR
// Classe onde está todo o problema
public class SalvarAction extends AbstractAction{
private JTextArea texto;
public SalvarAction (JTextArea texto){
super("Salvar");
this.putValue (Action.SMALL_ICON, new ImageIcon ("save.gif"));
this.putValue (Action.SHORT_DESCRIPTION, "Salva");
}
public void actionPerfoemrd (ActionEvent ev){
JFileChooser jfc = new JFileChooser();
int resp = jfc.showSaveDialog (this.texto);
if (resp != JFileChooser.APPROVE_OPTION) return;
File arquivo = jfc.getSelectedFile();
this.SaveFile(arquivo);
}
private void SaveFile (File f){
try{
FileWriter out = new FileWriter(f);
out.write (this.texto.getText());
out.close();
} catch (IOException e) {
JOptionPane.showMessageDialog (null, e.getMessage ());
}
}
}
public static void main (String args[]){
MeuNote janela = new MeuNote();
janela.setSize(600,400);
janela.setVisible(true);
}
} [/code]
Enfim, eu gostaria de uma ajuda pra entender melhor os conceitos disso que eu to fazendo, e porque de tantos erros.
E onde colocar o método main, finalizar a classe, etc.
Esse código compila, porém sem nada.
O tutorial que eu usei foi esse: http://www.javafree.com.br/content/view.jf?idContent=176
Obrigado a quem responder!


