Caixa de Texto

6 respostas
denisspitfire

Como posso criar em cima dos botoes um local para digitar? (Perdoem a ignorancia)

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

public class Estudos extends JFrame {
	public Estudos() {
		super("Calc");
		Container tela = getContentPane();
		BorderLayout layout = new BorderLayout();
		GridLayout numeros = new GridLayout(4, 3);
		GridLayout operacoes = new GridLayout(4, 1);
		JPanel painelCentro = new JPanel(numeros);
		JPanel painelOperacoes = new JPanel(operacoes);
		
		tela.setLayout(layout);
		tela.add(painelCentro, layout.CENTER);
		tela.add(painelOperacoes, layout.EAST);
		JButton bt2 = new JButton("NORTH");
		JButton btenter = new JButton("ENTER");
		
		JButton control7 = new JButton("7");
		JButton control8 = new JButton("8");
		JButton control9 = new JButton("9");
		JButton control4 = new JButton("4");
		JButton control5 = new JButton("5");
		JButton control6 = new JButton("6");
		JButton control1 = new JButton("1");
		JButton control2 = new JButton("2");
		JButton control3 = new JButton("3");
		JButton control0 = new JButton("0");
		JButton controlp = new JButton(".");
		JButton controlv = new JButton(",");
		
		JButton controldiv = new JButton("/");
		JButton controlmul = new JButton("*");
		JButton controlsub = new JButton("-");
		JButton controlsom = new JButton("+");
		
		painelCentro.add(control7);
		painelCentro.add(control8);
		painelCentro.add(control9);
		painelCentro.add(control4);
		painelCentro.add(control5);
		painelCentro.add(control6);
		painelCentro.add(control1);
		painelCentro.add(control2);
		painelCentro.add(control3);
		painelCentro.add(control0);
		painelCentro.add(controlp);
		painelCentro.add(controlv);
		
		painelOperacoes.add(controldiv);
		painelOperacoes.add(controlmul);
		painelOperacoes.add(controlsub);
		painelOperacoes.add(controlsom);
		
		tela.add(BorderLayout.NORTH, bt2);
		tela.add(BorderLayout.SOUTH, btenter);

		setSize(200, 200);
		setVisible(true);
	}

	public static void main(String[] args) {
		Estudos app = new Estudos();
		app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

E como eu posso melhorar o meu código? Eu queria juntar todas as partes dos numeros depois das operações… Acho que com funções. Mas não sei por onde começar

6 Respostas

marcosharbs

coloquei um textfield acima dos botões
executada a class ai pra ver se é asism que você quer

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Estudos extends JFrame {  
    public Estudos() {  
        super("Calc");  
        Container tela = getContentPane();  
        BorderLayout layout = new BorderLayout();  
        GridLayout numeros = new GridLayout(4, 3);  
        GridLayout operacoes = new GridLayout(4, 1);  
        JPanel painelCentro = new JPanel(numeros);  
        JPanel painelOperacoes = new JPanel(operacoes);  
        
        JTextField textField = new JTextField();
          
        tela.setLayout(layout);  
        tela.add(painelCentro, layout.CENTER);  
        tela.add(painelOperacoes, layout.EAST);  
        JButton bt2 = new JButton("NORTH");  
        JButton btenter = new JButton("ENTER");  
          
        JButton control7 = new JButton("7");  
        JButton control8 = new JButton("8");  
        JButton control9 = new JButton("9");  
        JButton control4 = new JButton("4");  
        JButton control5 = new JButton("5");  
        JButton control6 = new JButton("6");  
        JButton control1 = new JButton("1");  
        JButton control2 = new JButton("2");  
        JButton control3 = new JButton("3");  
        JButton control0 = new JButton("0");  
        JButton controlp = new JButton(".");  
        JButton controlv = new JButton(",");  
          
        JButton controldiv = new JButton("/");  
        JButton controlmul = new JButton("*");  
        JButton controlsub = new JButton("-");  
        JButton controlsom = new JButton("+");  
       
        painelCentro.add(control7);  
        painelCentro.add(control8);  
        painelCentro.add(control9);  
        painelCentro.add(control4);  
        painelCentro.add(control5);  
        painelCentro.add(control6);  
        painelCentro.add(control1);  
        painelCentro.add(control2);  
        painelCentro.add(control3);  
        painelCentro.add(control0);  
        painelCentro.add(controlp);  
        painelCentro.add(controlv);  
          
        painelOperacoes.add(controldiv);  
        painelOperacoes.add(controlmul);  
        painelOperacoes.add(controlsub);  
        painelOperacoes.add(controlsom);  
          
        JPanel panelSuperior = new JPanel(new GridLayout(2, 1));
        panelSuperior.add(bt2);
        panelSuperior.add(textField);
        
        tela.add(BorderLayout.NORTH, panelSuperior);  
        tela.add(BorderLayout.SOUTH, btenter);  
  
        setSize(200, 200);  
        setVisible(true);  
    }  
  
    public static void main(String[] args) {  
        Estudos app = new Estudos();  
        app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
    }  
}
denisspitfire

Agora… e se eu quiser fazer igual o teclado do computador? o zero é embaixo de 2 teclas… a 1 e a 2…
E o Enter também pega duas teclas… a 3 e a Del.
Alguem pode me explicar como faz?

denisspitfire

ninguem? pls

L

Cara uma dica?! Usa o layout do tipo null!

Nele, voce define as coodenadas de posicionamento de um objeto dentro no painel ou frame, da um pouquinho de trabalho ficar contando os pixels e os espacamentos, mas fica bem mais facil de lidar quando queremos uma coisa mais personalizada, no caso o teclado, ele nao é totalemente reguar e certinho pra voce usar o gridLayout…

denisspitfire

Ja sei… gridbaglayout. Dei uma pesquisada nao sabia o nome… esse tipo de layout faz com que voce possa mesclar celulas! Vou fazer aqui e posto o resultado. vlw pela ajuda

L

Ai é você quem sabe, mas o layout null da um pouco mais de trabalho, porem você não fica preso as células do layout.
Mas que bom que conseguiu!

Criado 11 de agosto de 2011
Ultima resposta 18 de ago. de 2011
Respostas 6
Participantes 3