package gui;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Font;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Calculadora extends JFrame {
public Calculadora() {
super("Calculadora");
Container n = new JPanel();
n.setLayout(new GridLayout(4,4, 5,5));
n.add(new JButton("7"));
n.add(new JButton("8"));
n.add(new JButton("9"));
n.add(new JButton("/"));
n.add(new JButton("4"));
n.add(new JButton("5"));
n.add(new JButton("6"));
n.add(new JButton("*"));
n.add(new JButton("1"));
n.add(new JButton("2"));
n.add(new JButton("3"));
n.add(new JButton("-"));
n.add(new JButton("0"));
n.add(new JButton("."));
n.add(new JButton("="));
n.add(new JButton("+"));
JTextField display = new JTextField();
display.setFont(new Font("Serif", Font.PLAIN, 26));
Container c = getContentPane();
c.add(BorderLayout.NORTH, display);
c.add(BorderLayout.CENTER, n);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300,300);
setVisible(true);
}
public static void main(String[] args) {
new Calculadora();
}
}
Como dou os comandos para os botões?
5 Respostas
.
Você quer adicionar um listener?
JButton btn = new JButton("7");
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("vc apertou o 7");
}
});
É algo assim que tu procura?
quero que apareça os numeros escolhidos e o resultado no display.
Certo.
Como são vários botões e você vai fazer basicamente a mesma coisa, pode utilizar o mesmo objeto/método para tratar os eventos. Algo assim:
public class Calculadora extends JFrame implements ActionListener {
private JTextField display;
public Calculadora() {
super("Calculadora");
Container n = new JPanel();
n.setLayout(new GridLayout(4,4, 5,5));
JButton btn;
btn = new JButton("7");
btn.addActionListener(this);
n.add(btn);
btn = new JButton("8");
btn.addActionListener(this);
n.add(btn);
// faca com os demais...
display = new JTextField();
display.setFont(new Font("Serif", Font.PLAIN, 26));
Container c = getContentPane();
c.add(BorderLayout.NORTH, display);
c.add(BorderLayout.CENTER, n);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300,300);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
String label = e.getActionPerformed();
display.setText(display.getText() + label);
}
public static void main(String[] args) {
new Calculadora();
}
}
Deste modo, o próprio objeto vai tratar os eventos no método actionPerformed. Como ele vai mostrar, fica a teu critério, neste exemplo eu concatenei os valores pra vc ver…
Acho que assim já dá pra ter uma noção. Eu não compilei este código, deve ter erros simples.
Falou.
Certo.
Como são vários botões e você vai fazer basicamente a mesma coisa, pode utilizar o mesmo objeto/método para tratar os eventos. Algo assim:
public class Calculadora extends JFrame implements ActionListener {
private JTextField display;
public Calculadora() {
super("Calculadora");
Container n = new JPanel();
n.setLayout(new GridLayout(4,4, 5,5));
JButton btn;
btn = new JButton("7");
btn.addActionListener(this);
n.add(btn);
btn = new JButton("8");
btn.addActionListener(this);
n.add(btn);
// faca com os demais...
display = new JTextField();
display.setFont(new Font("Serif", Font.PLAIN, 26));
Container c = getContentPane();
c.add(BorderLayout.NORTH, display);
c.add(BorderLayout.CENTER, n);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300,300);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
String label = e.getActionPerformed();
display.setText(display.getText() + label);
}
public static void main(String[] args) {
new Calculadora();
}
}
Deste modo, o próprio objeto vai tratar os eventos no método actionPerformed. Como ele vai mostrar, fica a teu critério, neste exemplo eu concatenei os valores pra vc ver…
Acho que assim já dá pra ter uma noção. Eu não compilei este código, deve ter erros simples.
Falou.