Ir ao conteúdo
  • Cadastre-se

Gui em java


Ir à solução Resolvido por Sadrake,

Posts recomendados


package java;

import java.awt.FlowLayout;

import java.awt.event.ActionListener;

import java.awt.event.ActionEvent;

import javax.swing.JFrame;

import javax.swing.JButton;

import javax.swing.Icon;

import javax.swing.ImageIcon;

import javax.swing.JOptionPane;

/*

olá galera estou estudando pelo livro de Deitel e fui tentar

executar o código abaixo mas tá dando erro na classe "public void actionPerformed (ActionEvent event)"

executei na eclipse .. tentem compilar pra vê se é erro no me compilador ou no código.. obrigado

*/

public class ButtonFrame extends JFrame

{

private JButton plainJButton;

private JButton fancyJButton;

public ButtonFrame()

{

super("Testing Buttons");

setLayout ( new FlowLayout());

plainJButton = new JButton("Plain Button");

add(plainJButton);

Icon bug1 = new ImageIcon(getClass().getResource("bug1.JPEG"));

Icon bug2 = new ImageIcon(getClass().getResource("bug1.JPEG"));

fancyJButton = new JButton("Fancy Button",bug1);

fancyJButton.setRolloverIcon(bug2);

add( fancyJButton );

ButtonHandler handler = new ButtonHandler();

fancyJButton.addActionListener(handler);

plainJButton.addActionListener(handler);

}

private class ButtonHandler implements ActionListener

{

public void actionPerformed (ActionEvent event)

{

JOptionPane.showMessageDialog(ButtonFrame.this, //dando erro aqui

String.format("You pressed: %s" event.getActionCommand() ) );

}

}

}

//Classe criada separadamente

package java;

import javax.swing.JFrame;

public class ButtonTest {

public static void main(String[] args) {

ButtonFrame buttonFrame = new ButtonFrame();

buttonFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

buttonFrame.setSize(275,110);

buttonFrame.setVisible(true);

}

}

Link para o comentário
Compartilhar em outros sites

bom, não tentei rodar o seu gui em java, sou iniciante em java também, mas lendo o código vi alguns erros.

como na linha que tu citou faltou um "+" unindo a "função" com a string, ficaria assim:

JOptionPane.showMessageDialog(ButtonFrame.this,String.format("You pressed: %s" + event.getActionCommand() ) );

no final do code, você declarou novamente

package java;import javax.swing.JFrame;

não é necessário, você já declarou isso no início.

 

e o terceiro erro, não tenho muita certeza do que direi agora, mas acredito que não se pode criar as duas classes como publicas (ButtonFrame e ButtonTest)

bom, faça as alterações e poste os resultados =)

Link para o comentário
Compartilhar em outros sites

Certo , mas foi eu mesmo q esqueci na verdade tem uma vírgula lá

JOptionPane.showMessageDialog(ButtonFrame.this,String.format("You pressed: %s" , event.getActionCommand() ) );

no final do code, você declarou novamente

//package java;import javax.swing.JFrame;

é desnecessária a declaração do pacote, mas o import tem que ter porque isso foi criado em uma nova  classe  só para rodar o código pois tem o main (primeiro método chamado), a classe então  está dentro 

de outro arquivo. 

 

e o terceiro erro, não tenho muita certeza do que direi agora, mas acredito que não se pode criar as duas classes como publicas (ButtonFrame e ButtonTest)

bom, faça as alterações e poste os resultados =)

 

 

sim, posso declarar duas classes como public desde que essas estejam aninhadas , no meu casso se eu tivesse declarado as duas dentro do mesmo arquivo que contém a classe estaria mesmo errado, porque eu não teria feito uma dentro da outra(aninhamento), mas por isso criei uma nova classe.

 

fora isto o que tava dando erro no código que consegui perceber após assistir uns vídeos  , é porque o programa não estava localizando a imagem, ela tem que está dentro do mesmo pacote que contém as classes, eu copiei e ainda assim tava dando erro,  então copiei diretamente as imagens do computador pra dentro do programa Eclipse  arrastei pra dentro do pacote, assim elas vão pra pasta src dentro da sua workpace automáticamente. Talvez se eu tivesse copiado pra esta pasta e fechado o programa poderia dá certo. mas com o programa em execução não funcionou então arrastei pra o pacote no programa mesmo. 

 

Importante é que deu certo , valeu programador.

Link para o comentário
Compartilhar em outros sites

Agora usando os Recursos JTexArea e Box

 

Cara, agora tive Mais um problema, dessa vez  não faço a mínima ideia do que SEJA. 

então se Possível Quem Puder executar, execute  porque o Código copiei do Jeito Que tá no Livro do Deitel. 

importação java.awt.event.ActionListener;importação java.awt.event.ActionEvent;importação javax.swing.Box;importação javax.swing.JFrame;importação javax.swing.JTextArea;importação javax.swing.JButton;importação javax.swing.JScrollPane;importação javax.swing.Component;public class TextAreaFrame estende JFrame {	privado JTextArea textArea1;	privado JTextArea textArea2;	private JButton copyJButton;		TextAreaFrame pública () {				super ("TextArea Demo");		Caixa de caixa = Box.createHorizontalBox ();		Demonstração 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 (demo, 10,15);		box.add (novo JScrollPane (textArea1));				copyJButton = new JButton ("Copy >>>");		box.add (copyJButton);		copyJButton.addActionListener (								new ActionListener () {										void (ActionEvent evento) {actionPerfomed público					textArea2.setText (textArea1.getSelectedText ());					}		        }				);		textArea2 = new JTextArea (10,15);		textArea2.setEditable (false);		box.add (novo JScrollPane (textArea2));				adicionar (caixa);	}}	

Agora Segunda parte obs. é criada em um novo arquivo , nova classe

import javax.swing.JFrame;public class TextAreaDemo {	public static void main(String[] args) {				TextAreaFrame textAreaFrame = new TextAreaFrame();		textAreaFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);		textAreaFrame.setSize(425,200);		textAreaFrame.setVisible(true);	}	}
Link para o comentário
Compartilhar em outros sites

  • Solução

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*/
    }

}
 

Link para o comentário
Compartilhar em outros sites

engenheiro de software né rs bacana, estamos estudando engenharia de software agora.

a forma como postou o código deu pra perceber como é iniciante, não no conteúdo que falo. 

 

bom cara, eu consegui baixar o código do livro na net porque eles disponibilizam, e não precisou do conteiner , mas acho que é porque é gui básica do livro e na maioria dos códigos tem, mas você achou os demais erros, alguns realmente apareceram na hora de postar aqui como você disse e outros eu realmente tinha escrito errado. agora tá beleza , cara tava frustado já, de tanto revisar o código rsrs.  muito obrigado mesmo.

Link para o comentário
Compartilhar em outros sites

só esclarecendo eu falei iniciante com  postagens no fórum sacas rsrs 

 

A legal cara, tenho uns colegas de curso de engenharia aí percebi que vocês trabalham muito com programação também, eu faço ciência da computação , onde trabalhamos muito com linguagem c também. Sobre engenharia elétrica estamos estudando uma matéria do curso de vocês, circuitos digitais, bem interessante. 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...