Kerisson, engraçado que conheço esse fórum a 15 anos (sou engenheiro) e só agora, exatamente nesse momento que me inscrevi e vi sua dúvida. Quando ia navegar pelos fóruns de cara vi esse falando sobre java, então me surpreendi e entrei porque nunca vi aqui no Clube do Hardware um tópico sobre programação de alto nível. Posso te ajudar porque adoro java desde a faculdade e desenvolvo também.
Primeiro presta atenção que o código que você enviou deve ter passado por algum tradutor para o português, mas ajeitei o código e depois verifiquei os erros. Nos comentários expliquei os erros. Acho que o que eu chamo de "erro principal" seria o que estava faltando no código que você viu no Deitel.
import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import javax.swing.Box; import javax.swing.JFrame; import javax.swing.JTextArea; import javax.swing.JButton; import javax.swing.JScrollPane; //import javax.swing.Component; Component é uma Classe do pacote awt e não é necessário aqui import java.awt.Container; //importar a classe Container aqui public class TextAreaFrame extends JFrame { private JTextArea textArea1; private JTextArea textArea2; private JButton copyJButton; public TextAreaFrame () { super ("TextArea Demo");
Container cont = getContentPane(); /*aqui que eu acho que foi o erro principal. A classe Container é indispensável para esse tipo de programa*/
Box box = Box.createHorizontalBox ();
/*na string abaixo não pode ter espaços entre '\' e 'n', assim como '\' não pode * estar entre espaços, como acontecia aqui */ String string = "Esta é uma seqüência de demonstração para \n" + "Illustrte copuing texto nno um textarea para \n" + "Outro textarea usando um evento nexternal \n "; textArea1 = new JTextArea (string, 10,15); box.add (new JScrollPane (textArea1)); copyJButton = new JButton ("Copy >>>"); box.add (copyJButton); copyJButton.addActionListener ( new ActionListener () { //aqui não é perfomed, mas é permormed public void actionPerformed (ActionEvent evento) {
/*observe aqui que o evento ao clicar no botão * só vai funcionar se o texto tiver selecionado*/ textArea2.setText (textArea1.getSelectedText ()); } } ); textArea2 = new JTextArea (10,15); textArea2.setEditable (false); box.add (new JScrollPane (textArea2));
cont.add(box);/*adicionando o box, que já contém o botão e as caixas de texto no container*/ } }