GUIs - JLabel e JTextfield [Resolvido]

4 respostas
Smokerox

Ola galera,
Bom estou estudando java algum tempo e na área de inteface grafica estou começando a entrar agora
e gostaria de saber como inserir JLabel e JTextfield no meu programa de conversão de Graus.

import javax.swing.JOptionPane;

public class Conversor {
	
	public static void main(String[] agrs){
		
		// obtêm a entrada de usuário a partir dos diálogos de entrada
		String firstNumber = JOptionPane.showInputDialog("Temperatura em Graus Fahrenheit");
		
		// converte os valores recebido em string para int
		int number1 = Integer.parseInt( firstNumber );
		
		// conversão de guaus fahrenheit para graus celsius
		int sum = 5/9*(number1 - 32);
		
		// exibe o resultado no diálogo de mensagem JOptionPane
		JOptionPane.showMessageDialog(null, "Graus Celsius " + sum, "Conversor de Graus", JOptionPane.PLAIN_MESSAGE);
		
	}
}
Modificando o comando e inserindo no comando JLabel e JTextfield. Pois preciso obter o valor usando um JTextfield e Mostrar o resultado em JLabel. Alguem poderia me falar como ficaria com esses comandos?

4 Respostas

tinorberto
Oi voce precisa criar uma JFrame, por exemplo crie uma nova classe: (exemplo bem simples ....)
import java.awt.GridLayout;
import java.awt.TextField;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class Interface extends JFrame {
    //campo de texto
    private TextField campo;
    
    //label
    private JLabel label;
    
    public Interface(){


        super();
        //tamanho do frame
        this.setSize(200, 200);

        //inicializa o campo de texto
        TextField campo = new TextField();
        
        //inicializa o label
        JLabel label =  new JLabel("teste..");

        //seta o layout
        setLayout(new GridLayout());

        //adiciona no jframe
        add(campo); 
        add(label);
        
        
    }

}

Deopis e so criar um objeto dessa classe .. De uma olhada sobre a classe Jrame e muito util para desenvolver interface

Smokerox

Hum…
Eu ate entendi o que você fez, mais teria como apenas modificar o exemplo que passei e sem usar o JFrame…

manolimars

Fiz um código comentado, espero que sirva para seu estudo

Arquivo Teste.java

import java.awt.event.*;
import javax.swing.*;

public class Teste extends JFrame implements ActionListener
{
    JLabel      texto       = new JLabel("Graus Celcius: ");
    JTextField  caixaTexto  = new JTextField("Fahrenheit");
    JButton     botao       = new JButton("Calcular");

    public Teste()
    {
        this.setSize(300,150);
        //define tamanho para janela
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //Para de executar ao fechar o programa ^

        this.setLayout(null);
        //null Layout, permite colocar os componentes em qualquer lugar da janela

        caixaTexto.setBounds(10,10,250,20);
        //define as coordenadas da JTextField (posição X, posição Y, Largura, Altura)
        this.add(caixaTexto);
        //Adiciona o JLabel no JFrame

        botao.setBounds(100,40,90,20);
        //define as coordenadas do JButton (posição X, posição Y, Largura, Altura)
        botao.addActionListener(this);
        //Adiciona evento para este botão
        this.add(botao);
        //Adiciona o JButton no JFrame

        texto.setBounds(10, 70, 250, 20);
        //define as coordenadas da JLabel (posição X, posição Y, Largura, Altura)
        this.add(texto);
        //Adiciona o JLabel no JFrame

        this.setVisible(true);
        //Deixa a janela visivel
    }

    public void actionPerformed(ActionEvent e)
    {
        try
        {
            // obtêm a entrada de usuário a partir da JTextField
            String firstNumber = caixaTexto.getText();

            // converte os valores recebido em string para double
            double number1 = (double)Double.parseDouble(firstNumber);
            //fas um cast para para um tipo primitivo

            // conversão de guaus fahrenheit para graus celsius
            //double sum = 5/9*number1 - 32;
            double sum = (5.0/9.0)*(number1-32.0);
            //Cuidar os pontos, senão ele indentifica com int e deixa o resultado como ZERO

            //setar o resultado na JLabel
            //Concatenar com uma String, pois não pode-se colocar diretamente o valor int
            texto.setText("Graus Celcius:  " + sum + "ºC");
        }
        catch(Exception ex)
        {
            JOptionPane.showMessageDialog(this, "Caracteres Inválidos no Campo JTextField");
            //Caso não for possivel converter o valor digirto, ele envia esta mensagem na tela
        }
    }
}

Novo Arquivo Principal.java

public class Principal
{
	public static void main(String args[])
	{
		new Teste();
	}
}

[]'s

tinorberto

Muito bom exemplo manolimars . Smokerox estude a classe JFrame, ela que vc vai precisar.
De uma olhada abaixo.
http://www.guj.com.br/article.show.logic?id=16

Criado 24 de novembro de 2009
Ultima resposta 24 de nov. de 2009
Respostas 4
Participantes 3