Conversor + NetBeans

Novo projeto

Definindo a UI

Crie um frame

Ao criar um frame, a IDE já apresenta o GUI Builder para editá-lo visualmente.

GUI Builder

O GUI Builder é tem como objetivo simplificar a construção de telas utilizando Swing

  1. Pallete: apresenta todos os componentes disponíveis para a construção da tela. Para utilizá-los basta selecionar e arrastar o elemento para a tela

  2. Navigator: diferente da visão de uma classe comum, no GUI Builder, o navigator apresenta os elementos swing adicionados à tela

  3. Editor: apresenta o protótipo da tela, por ele é possível adicionar, mover, remover e editar propriedades dos elementos swing

  4. Visualização: apresenta as opções abaixo:

    1. Source: Apresenta o código da classe em questão como uma classe java comum. Utilizado para tratar a lógica das telas (apresentado em todas as classes)

    2. Design: Apresenta o GUI Builder (apresentado apenas em classes Swing)

    3. History: Apresenta um histórico de alterações na classe (apresentado em todas as classes)

  5. Preview: apresenta uma pré-visualização da tela em edição sem a necessidade de executar todo o projeto

  6. Botões de posicionamento: servem para alinhar elementos na tela

Adicione os elementos necessários

Para o conversor precisaremos de um campo para receber o valor em Celsius, um para apresentar o resultado da conversão em Fahrenheit, um botão para acionar o cálculo, além de labels para identificar os elementos.

Para adicionar os elementos na tela é necessário selecionar (um clique com o botão esquerdo do mouse) o elemento e posicioná-lo na tela no local desejado (mais um clique botão esquerdo do mouse).

Após adicionados os elementos, é possível selecionar cada um de maneira independente para editar suas propriedades.

  1. Properties: apresenta todos os atributos do elemento e permite a sua edição

  2. Navigator: como mencionado acima, apresenta os elementos adicionados à tela

  3. Elemento selecionado: para selecionar um elemento, basta um clique com o botão esquerdo do mouse. Os elementos podem ser redimensionados usando os pontos extremos representados na borda laranja

Cado a aba de propiedades não seja apresentada por padrão, é possível acioná-la via Window > IDE Tools > Properties ou pelo atalho Ctrl+Shift+7.

Redimensionar elementos

Ao selecionar as extremidades dos elementos e arrastar até o ponto desejado

Renomear elementos

Para renomear os elementos basta utilizar o botão direito do mouse no navigator e selecionar "Change variable name"

Repita o processo para todos os elementos

Editar propriedades

Na aba Properties, basta encontrar o valor desejado e alterá-lo

Repita o processo para todos os elementos

Alinhar elementos

Ao alterar o conteúdo do labelFahrenheit, o tamanho do elemento mudou sendo necessário alinhar os textField.

Para isso, selecione os campos a serem alinhados e acione o botão de alinhamento à direita.

Em alguns momentos os campos podem ser perder a configuração quando alinhados ou ao adicionar um novo elemento na tela. Nesses casos, será necessário repetir o processo de alinhamento e organização dos elementos.

Preview

Para previzualizar a tela, é necessário acionar o botão "Preview Design"

Ajustar tamanho do frame ao elementos da tela

Como apresentado acima, a tela já está com o design quase concluído, podemos ajustar o tamanho do frame para melhorar a apresentação.

No Navigator clique com o botão direito do mouse no frame e selecione a opção "Set to Default Size".

Inicializar o frame

Para que o frame criado seja apresentado, é necessário inicializá-lo no main da classe principal do projeto, neste caso Conversor.java.

Executar o projeto

Para executar o projeto basta selecionar uma das opções: Run Project ou Debug Project

Tamanho dos campos

Para definir o tamanho dos campos, altere a propriedade "columns" dos textField.

Título do frame

Para definir o título do frame, altere a propriedade "title" do frame.

Desabilitar resultado

Para definir um campo como não editável, altere a propriedade "title" do frame.

Código fonte

Agora que temos a tela da forma que desejamos e com os elementos necessários, é sugerida atenção ao código fonte gerado.

O código gerado pelo GUI Builder não pode ser ajustado manualmente pelo editor de texto e é apresentado em cinza na classe ConversorFrame.

Adicionar eventos

Todo o código gerado deve ser editado via GUI Builder e isso inclui os eventos atrelados aos elementos em tela. Para criar um elemento deve-se clicar com o botão direito no elemento desejado e selecionar Events > [evento desejado] > [método desejado].

Usaremos essa funcionalidade para criar um evento para o botão "Converter".

No código fonte é gerado um método vazio esperando a ação desejada. Neste caso será implementado com o cálculo da conversão de temperatura Cº para F°.

private void buttonCalcularActionPerformed(java.awt.event.ActionEvent evt) {                                               
    Double tempFahr = (Double.parseDouble(textFieldCelsius.getText())) * 1.8 + 32;
    textFieldFarenheit.setText(tempFahr.toString());
}

Definido o funcionamento do botão podemos converter o valor conforme o esperado.

Alterar "Look and Feel"

A biblioteca do Swing possui alguns conjuntos e estilos de elementos pré-definidos e além dos temas padrões, existem temas criados pela comunidade. No editor do código fonte do frame ConversorFrame.java gerado pela IDE há um trecho de código específico para a configuração do "Look and Feel" ou LAF do frame.

Esse trecho de código não é executado devido ao fato de a execução ser feita pela classe Conversor.java. Portando, deve ser feita uma movimentação deste código para a classe principal e removido o método main sem uso da classe ConversorFrame.java. Resultando no estado abaixo:

try {
    for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
        if ("Nimbus".equals(info.getName())) {
            javax.swing.UIManager.setLookAndFeel(info.getClassName());
            break;
        }
    }
} catch (ClassNotFoundException ex) {
    java.util.logging.Logger.getLogger(ConversorFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
    java.util.logging.Logger.getLogger(ConversorFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
    java.util.logging.Logger.getLogger(ConversorFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
    java.util.logging.Logger.getLogger(ConversorFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}     

Como é possível compreender analisando o bloco de código sobre o LAF, o tema definido no padrão da IDE é o "Nimbus". Porém, como mencionado acim, este trecho de código não era executado e o tema padrão do swing era acionado: Metal.

Projeto Conversor

Caso necessário, o projeto Conversor pode ser encontrado no no github.

Referências

Last updated