Exercicio NetBeans (Swing) - Entre com 5 números e exiba o Maior deles

4 respostas
A


package exercicio;
import java.util.*;

public class Max extends javax.swing.JFrame
 {
    int num;
    int cont = 1;
    String myString;

    List<Integer> MyArray = new ArrayList<Integer>();

     
    public Max()    // Construtor
     {
       initComponents();
     }

    public int MaxArray()  // Método que procura o Maior número dentro do ArrayList 
      {
        int n = MyArray.get(0);

        for(int i = 0; i < MyArray.size(); i++)
         {
           if(MyArray.get(i) > n)
            n = MyArray.get(i);
         }

        return n;
      }
   
    private void jBInserirActionPerformed(java.awt.event.ActionEvent evt) {    // Botão Inserir
      num = Integer.valueOf(jTVisor.getText());
       MyArray.add(num);
        jTVisor.setText("");
         cont++;
          jLCont.setText(String.valueOf(cont));
           jTVisor2.setText("");
           if(cont == 6)
            {
              cont = 1;
               jTVisor.setEditable(false);
                jLCont.setText("");
            }
    }

    private void jBMaiorActionPerformed(java.awt.event.ActionEvent evt) {   // Botão Maior Número
     jTVisor2.setText(String.valueOf(MaxArray()));
      MyArray.clear();
       jTVisor2.setEditable(false);
        jTVisor.setEditable(true);
         jLCont.setText("1");
    }

     
    public static void main(String args[])
     {
      java.awt.EventQueue.invokeLater(new Runnable()
       {
         public void run()
          {
            new Max().setVisible(true);
          }
       });
     }

    // Declaração de Variavéis
    private javax.swing.JButton jBInserir;
    private javax.swing.JButton jBMaior;
    private javax.swing.JLabel jLCont;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JTextField jTVisor;
    private javax.swing.JTextField jTVisor2;
    

}

Exercicio NetBeans (Swing) - Entre com 5 números e exiba o Maior deles

Avaliem ai… valeu…

4 Respostas

M

Algumas considerações:

[list]Acho mais elegante declarar as variáveis no começo da classe e não no final. Mas acho q é questão de gosto.[/list]
[list]Por convenção variáveis devem ter a primeira palavra começada com letra minuscula e a as demais começando com letras maiusculas. O mesmo vale para nome de métodos. Lembre-se que embora seja apenas uma convenção é sempre bom segui-la pois deixa o código mais claro para a pessoa que está olhando. Portanto o método MaxArray deveria ser renomeado para maxArray e a lista MyArray deveria ser renomeada para myArray[/list]
[list]Ainda falando de convenções nomes de métodos devem indicar ação (verbos) e por isso o método MaxArray deveria ser renomeado para algo do tipo obterMariorNumero lembrando que o nome do método não deve ser mto grande mas deve fornecer uma idéia bem legal sobre o que o método faz.[/list]
[list]Sempre comente seus métodos utilizando o padrão javadoc fora do método fornecendo o maior número de informações possíveis como a finalidade do método, principio básico de funcionamento e o que o método espera receber para funcionar. Comentários dentro do método podem ser comentários de linha (//) ou comentários de várias linhas sem javadoc (/* … */). Comentar o método antes com o padrão javadoc facilita mto se vc está utilizando alguma IDE como o eclipse (não sei quanto ao netbeans mas com certeza deve ser bem parecido) pois quando vc está trabalhando com outro arquivo que chama algum método de outra classe em questão somente o fato de vc passar o mouse sobre o nome do método já fornece o comentário que voce colocou.[/list]
[list]No método jBInserirActionPerformed utilize o tratamento de exceções para receber o texto da caixa de texto e transformá-lo em número. Se o usuário digitar algum caracter não numérico ou simplesmente não digitar nada seu programa vai lançar uma exception e não vai funcionar do jeito que deveria. [/list]
[list]No método MaxArray vc atribui a n o valor de MyArray.get(0) e o seu loop começa em 0. Você está comparando MyArray.get(0) com MyArray.get(0) na primeira iteração. Para um programa que compara uma lista de 5 ou 6 elementos isso não faz diferença. Mas quando o tamanho da lista aumenta pode fazer mta diferença.[/list]

Bom essas são as coisas que consegui observar em seu código. Não sei se todos vão concordar com tudo o que falei mas vale a pena pensar nisso.

d34d_d3v1l

Ae…

gostei das observações do melges,
mas a minha dica é a seguinte,

apague tudo e re-faça o código na mão e se desprenda um pouco do netbeans…
Eu nao to sendo hipocrita nao, eu tbem uso o netbeans mto…

Mas é porque é necessário conhecer como fazer as coisas na UNHA,
conhecer de Layout Manager, e tudo mais…

Eu ja pelejei com isso, apanhei mto, pq só sabia fazer GUI no “arrasta e solta”… é só uma dica.

Abraços

A

melges:
Algumas considerações:

[list]Acho mais elegante declarar as variáveis no começo da classe e não no final. Mas acho q é questão de gosto.[/list]
[list]Por convenção variáveis devem ter a primeira palavra começada com letra minuscula e a as demais começando com letras maiusculas. O mesmo vale para nome de métodos. Lembre-se que embora seja apenas uma convenção é sempre bom segui-la pois deixa o código mais claro para a pessoa que está olhando. Portanto o método MaxArray deveria ser renomeado para maxArray e a lista MyArray deveria ser renomeada para myArray[/list]
[list]Ainda falando de convenções nomes de métodos devem indicar ação (verbos) e por isso o método MaxArray deveria ser renomeado para algo do tipo obterMariorNumero lembrando que o nome do método não deve ser mto grande mas deve fornecer uma idéia bem legal sobre o que o método faz.[/list]
[list]Sempre comente seus métodos utilizando o padrão javadoc fora do método fornecendo o maior número de informações possíveis como a finalidade do método, principio básico de funcionamento e o que o método espera receber para funcionar. Comentários dentro do método podem ser comentários de linha (//) ou comentários de várias linhas sem javadoc (/* … */). Comentar o método antes com o padrão javadoc facilita mto se vc está utilizando alguma IDE como o eclipse (não sei quanto ao netbeans mas com certeza deve ser bem parecido) pois quando vc está trabalhando com outro arquivo que chama algum método de outra classe em questão somente o fato de vc passar o mouse sobre o nome do método já fornece o comentário que voce colocou.[/list]
[list]No método jBInserirActionPerformed utilize o tratamento de exceções para receber o texto da caixa de texto e transformá-lo em número. Se o usuário digitar algum caracter não numérico ou simplesmente não digitar nada seu programa vai lançar uma exception e não vai funcionar do jeito que deveria. [/list]
[list]No método MaxArray vc atribui a n o valor de MyArray.get(0) e o seu loop começa em 0. Você está comparando MyArray.get(0) com MyArray.get(0) na primeira iteração. Para um programa que compara uma lista de 5 ou 6 elementos isso não faz diferença. Mas quando o tamanho da lista aumenta pode fazer mta diferença.[/list]

Bom essas são as coisas que consegui observar em seu código. Não sei se todos vão concordar com tudo o que falei mas vale a pena pensar nisso.

[list]Não cheguei a completar o codigo … tenho mesmo que fazer os tratamentos para as Exception…[/list] Obrigado pelas dicas …

A

d34d_d3v1l:
Ae…

gostei das observações do melges,
mas a minha dica é a seguinte,

apague tudo e re-faça o código na mão e se desprenda um pouco do netbeans…
Eu nao to sendo hipocrita nao, eu tbem uso o netbeans mto…

Mas é porque é necessário conhecer como fazer as coisas na UNHA,
conhecer de Layout Manager, e tudo mais…

Eu ja pelejei com isso, apanhei mto, pq só sabia fazer GUI no “arrasta e solta”… é só uma dica.

Abraços

[list]Sempre fiz códigos para Console… apesar de eu ser novo em java… Não é preguiça não …acho importante mesmo fazer tudo…na UNHA …como vc disse…Mas no casos da GUI usando o NetBens… tá sendo muito util … não apenas pelo “arrastar e soltar”…To aprendendo a ORDEM das coisas… depois de apreender não vejo muita dificuldade…em escrever o código pra GUI…
Mas…devemos pensar em Custo e Tempo…[/list]Obrigado pelas dicas…

Criado 16 de fevereiro de 2012
Ultima resposta 16 de fev. de 2012
Respostas 4
Participantes 3