Caixa de Texto

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

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);  
    }  
} 

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?

ninguem? pls

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…

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

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!