Jump to content
D3POD

Variáveis

Recommended Posts

D3POD

Boas, preciso de criar uma class para limpar os campos da minha aplicação...

Criei uma class:

public class limpar {
public static void limpa() {
 jTextField1.setText(null);
 jTextField2.setText(null);
}

}

basicamente, tenho algo mal, mas como sou muito iniciante ainda não sei o que fazer.

As jTextField estão na app, penso que o que tenho que fazer é tornar estas jTextField visiveis em todo o projecto, ou seja, modo public? Correcto?

Está-me algo a escapar, já pesquisei e não encontrei o que pretendo, deve ser por não saber o que procurar :P

Um abraço :)

Share this post


Link to post
Share on other sites
Knitter

Não sei porque é que tens de criar uma classe para fazer o que pretendes, é alguma imposição de algum enunciado?

Essas variáveis não estarão acessíveis dessa forma, mesmo que as tornes públicas, são variáveis de instância. Terias de criar métodos de acesso para isso, no entanto aquilo que estás a tentar fazer não faz muito sentido. Se queres limpar os campos porque não simplesmente colocar o código num método em vez de uma classe?

Share this post


Link to post
Share on other sites
D3POD

Não, apenas pensei em classes porque como estava a estudar classes queria ver as funcionalidades na prática.

Então o melhor é usar metodos certo? como posso fazer isto?

Share this post


Link to post
Share on other sites
polska

Não, apenas pensei em classes porque como estava a estudar classes queria ver as funcionalidades na prática.

Então o melhor é usar metodos certo? como posso fazer isto?

Os métodos são implementados nas classes... Tu próprio criaste um método, o método limpa(), que pertence à classe limpar .

O que o @Knitter te quis dizer foi porque não implementares esse tal método limpa() na própria classe da app.

Edited by polska

Corrige um sábio e ele mais sábio ficará. Corrige um ignorante e um inimigo ganharás.

Share this post


Link to post
Share on other sites
Knitter

Mais ou menos isso :)

O método não precisa, nem deve neste caso, ser estático, e pode estar implementado na mesma classe que usas para desenhar a interface e onde tens as variáveis que mostras no código. Mas o melhor é talvez leres um tutorial e começares pelo início: http://wiki.portugal-a-programar.pt/dev_geral:java:tutorial:home

Isto de aprender logo com interfaces gráficas adiciona um nível de complexidade extra que não é bom ;)

Share this post


Link to post
Share on other sites
D3POD

Ok, mesmo que coloque na mesma class da interface, continuo sem conseguir...

Eu já li esses tutoriais todos, mas acho que algo me está a escapar :(

O erro que me está a dar é na jTextField... penso que esteja a tentar chamar este objecto de forma errada.

Share this post


Link to post
Share on other sites
polska

Isto de aprender logo com interfaces gráficas adiciona um nível de complexidade extra que não é bom ;)

Isso é verdade, por acaso foi logo assim que aprendi, e realmente torna mais complicado.

O erro que me está a dar é na jTextField... penso que esteja a tentar chamar este objecto de forma errada.

Coloca aqui o código :thumbsup:

Edited by polska

Corrige um sábio e ele mais sábio ficará. Corrige um ignorante e um inimigo ganharás.

Share this post


Link to post
Share on other sites
D3POD

public static void main(String args[]) {




    class limpar {

	    String txt1;
	    String txt2;

		    public void limpa () {
			    txt1 = null;
			    txt2 = null;
		    }	 
    }
.................
}

Assim foi a unica maneira que consegui que o netbeans não acusa-se erro :P

Andei a ler uns tutoriais e pelo que percebi, penso que seja isto.

Agora a minha duvida é como faço com que esta acção seja passada para as jtextfield ao clicar no botão limpar :P

Share this post


Link to post
Share on other sites
Knitter

Declaraste mesmo a class dentro do método main? Espero que não.

O que estás a fazer no código acima (ignorando o facto de teres uma classe declarada dentro de um método) é declarar duas variáveis, que em nada têm a ver com os campos de texto, e a colocar essas variáveis a null, que não fará nada do que pretendes. Podes colocar código completo ou partilhar o projecto?

Share this post


Link to post
Share on other sites
D3POD

Acho que então o problema é mais grave do que me parece :P

Vou explicar o que quero a ver se me conseguem ajudar...

Eu quero criar um função que ao ser invocada que limpe todas ou as jtextfield que forem mencionadas no código.

A ideia é para já colocar um botão a limpar, mas a ideia é utilizar esta função em mais zonas do projecto e assim pouparia bastante tempo :)

um abraço

Share this post


Link to post
Share on other sites
Knitter

Tendo em conta que o nome das variáveis terá de ficar fixo (não tem mas o nível de conhecimentos para o fazer é um pouco elevado), não sei se realmente pouparás tempo ou se será mais simples.

Em vez de usares essas variáveis do tipo string terias de aceder a cada um dos componentes e fazer um setText("").

Share this post


Link to post
Share on other sites
D3POD

Sim isso eu sei e é como tenho :)

a ideia disto é mesmo aprender, não criar uma aplicação para funcionar e para uso do dia-a-dia.

O que pretendo é com uma aplicação simples que faça o basico, possa melhorá-la e aplicar melhorias de sintaxe de forma a aprender e no final quero ter um resultado bem conseguido ;)

A ideia era mesmo evitar, colocar o código repetido diversas vezes na app.

Share this post


Link to post
Share on other sites
Knitter

Código repetido vai depender da forma como tens a aplicação feita, eventualmente deves conseguir reutilizar algumas coisas, mas uma forma genérica para repor ao valor inicial qualquer tipo de componente é algo complexo e sinceramente, não vejo qualquer utilidade.

De qualquer modo, se quiseres tentar, uma forma mais simples seria criares uma classe tua para cada componente, que estenda do componente que queres usar e ao qual adiciones um método "reset". Aplicas a todas essas classes uma mesma interface que defina esse método "reset", e colocas todos os componentes que queres poder limpar numa única lista que depois percorres para chamar o método "reset" a cada uma delas... não vale o esforço :)

Share this post


Link to post
Share on other sites
D3POD

Pois não :P resumindo é estar a complicar :P

Obrigado pela ajuda :)

Vou passar ao proximo problema :P

Share this post


Link to post
Share on other sites
Ernest

Bom dia D3POD,

Já agora gostaria de colocar algumas constantes (o que não muda) neste tópico sobre variáveis (o que está sempre a mudar).

Eu acho que quase tudo já foi dito neste tópico. Mas parece que falta algo de importante.

As únicas coisas que faltam mencionar, talvez seja a metodologia de aquisição de conhecimento mais do que o próprio conhecimento e a maneira de construir exemplos para demostrar as nossas suposições e hipóteses. Por exemplo para aprender o que são as classes JAVA e a herança entre classes.

Tendo em compta a rápida evolução das tecnologias e linguagens de computador em constante evolução.

O que implica não só de aprender constantemente mas ao mesmo tempo de aprender a aprender !!!!!

E por outro lado o domínio, mestria da complexidade de um sistema. A mestria da complexidade é fundamental para um desenvolvedor de software.

Lembre-se que o objetivo da TI é simplificar a vida das pessoas, mas por outro lado, você deve saber que a inteligência emerge de sistemas complexos (como o cérebro humano, por exemplo). Um sistema de computador deve ser suficientemente complexo para fornecer uma certa inteligencia "uma riqueza funcional" e "poder de expressão". E claro o desenvolvedor deve dominar, com mestria a complexidade destes sistemas complexos.

Eu utilizo uma metodologia para aprender e desenvolver projetos informáticos em Java :

Primeiro aprende-se as definições e regras básicas da linguagem JAVA e conceitos da Object-oriented programming (OOP) :

Definições : o que é uma Classe Java ? O que é uma Interface Java ? O que é um Package Java ? O que é um Modifier Java ? O que é um método Java ( static e de instancia ) ? etc...

Conceitos OOP no JAVA : herança, polimorfismo, modularidade, encapsulamento, links dinâmicos (ligação tardia , inglês : Late Binding).

As regras da linguagem Java, como por exemplo :

todas as classes Java devem estar num package mesmo se for o default package (é o diretório onde está a classe).

todas as classes Java herdam de outra classe exceto para a classe Object, que é a classe "mãe" de todas as outras.

todas as classes tem um construtor mesmo se você não mete nenhum até as classes abstract que não são instanciáveis diretamente.

quando se constrói um objeto de uma classe, antes o sistema Java vai construir todas as classes mães começando por a classe Object. Mesmo se houver alguma classe abstract entre elas.

Aprender a construir exemplos para aprender alguns aspectos da programação, orientada a objetos incluindo o uso de classes e chamada de métodos e herança entre classes entre outros aspectos como por exemplo limpar os JTextField com os setText("").

Aprender a construir exemplos e verificar hipóteses é o que mais permite aprender a linguagem Java e a desenvolver aplicações no quadro de projetos informáticos.

Em conclusão a chave fundamental é de se aproximar ao máximo de metodologias cientificas. O protocolo científico deve ser aplicado o mais quanto possível. Trabalhar com rigor mas ao mesmo tempo com muita flexibilidade.

Ter uma base teórica solida. Fazer hipóteses verificar com experiencias imaginarias o reais. Construir o seu pensamento. Não ser supersticioso em frente de um programa de computador.

A necessidade de testabilidade das hipóteses implica saber construir exemplos e para demostrar as hipóteses.

Outros aspectos científicos :

- observações

- questionar

- hipótese

- Teste, experimentar

- explicar

Resumindo :

Etapa 0 - Ser é o que precede Fazer. A personalidade e atitude e comportamento são fatores determinantes para se conseguir atengir um certo nivel.

Etapa I - Aprender a aprender é mais importante do que aprender verdades que serão talvez mentiras no futuro. citação de Ernest Duarte :-)

Exemplo :

Geocentrism é um modelo físico velho e errado em que a Terra é parada no centro do universo. Esta teoria remonta à antiguidade e foi particularmente defendida por Aristóteles e Ptolomeu. Durou até o final do século XVI a ser gradualmente substituída pela teoria heliocêntrica, que a Terra gira em torno do sol ...

II- Aprender a dominar e mestria da complexidade de um sistema é fundamental para um desenvolvedor de informática.

Não confundir complexidade e dificuldade !!! bem entender a sutileza da diferença entre estes conceitos é fazer prova de intelegencia.

III- Já agora também não confundir velocidade e precipitação. Por exemplo, aqueles que querem ir mais rápido, por vezes, são aqueles que são mais lentos.

IV- Quando se estuda um sistema se deve aplicar as metodologias cientificas : em primeiro identificar todas as entidades e suas propriedades do sistema graças à capacidade de observação. Segundo estudar as interações entre essas entidades. Terceiro questionar e fazer novas experiencias para verificar as hipóteses para melhor compreender o sistema.

E para concluir vou citar em primeiro Alberto Einstein :

(pt) A imaginação é mais importante que o conhecimento. O conhecimento é limitado, enquanto a imaginação abraça o mundo inteiro, estimulando o progresso, levantando a evolução.

(fr) L'imagination est plus importante que la connaissance. La connaissance est limitée alors que l'imagination englobe le monde entier, stimule le progrès, suscite l'évolution.

(en) Imagination is more important than knowledge. For knowledge is limited, whereas imagination embraces the entire world, stimulating progress, giving birth to evolution.

Citação do francês Nicolas Boileau :

O que é bem concebido se expressa claramente, e as palavras para dizê-lo vem facilmente.

(fr) Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément.

http://fr.wikipedia.org/wiki/Nicolas_Boileau

Cordialmente

Ernest Duarte

Edited by Ernest Duarte

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.