la calculadora que he montado queda tal que asi;
http://www.mundobalonmano.com/pruebas/calcu.jpg
Pero cuando le doy a uno de los botones que he configurado para escuchar:
http://www.mundobalonmano.com/pruebas/ca.jpg
Me aparece esta imagen arriba y se descoloca todo, ademas si sigo dando a otros botones se montan los numeros uno dentro de otro, no entiendo porque ya que en el performed hago lo basico:
Código PHP:
@Override
public void actionPerformed(ActionEvent a) {
if(a.getActionCommand().equals("bot5")){
label.setText("7");
}else if(a.getActionCommand().equals("bot6")){
label.setText("8");
}else if(a.getActionCommand().equals("bot7")){
label.setText("9");
}
}
este es el código completo:
Código PHP:
package calculadora;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Calculadora extends JFrame implements ActionListener{
private ImagenPanel general;
private JPanel lcd;
private JPanel calculadora;
private BotonImagen boton;
private JLabel label;
private JLabel labelResultado;
private ImageIcon icono;
public Calculadora(String titulo){
super(titulo);
}
public void mostrar(){
setSize(615,470);
icono = new ImageIcon(this.getClass().getResource("fondo.png"));
general = new ImagenPanel(icono.getImage());
add(general);
lcd = new JPanel();
lcd.setLayout(new GridLayout(2,0,0,-30));
lcd.setBackground(new Color(0, 0, 0, 0));
// Border borde = BorderFactory.createLineBorder(Color.RED, 2);
// lcd.setBorder(borde);
lcd.setPreferredSize(new Dimension(500,104));
calculadora = new JPanel();
calculadora.setBackground(new Color(0, 0, 0, 0));
calculadora.setPreferredSize(new Dimension(540,300));
calculadora.setLayout(new GridLayout(5,4,5,0));
general.add(lcd);
general.add(calculadora);
label = new JLabel("");
label.setFont(new Font("Dash Dot LCD-7",10,20));
label.setHorizontalAlignment(JLabel.RIGHT);
//label.setBounds(500, 10, 500, 50);
lcd.add(label);
labelResultado = new JLabel("14");
labelResultado.setFont(new Font("Dash Dot LCD-7",80,50));
labelResultado.setHorizontalAlignment(JLabel.RIGHT);
lcd.add(labelResultado);
for(int i = 1; i<=20;i++){
boton = new BotonImagen(new ImageIcon(this.getClass().getResource("/tech/"+i+".jpg")));
boton.setRolloverIcon(new ImageIcon(this.getClass().getResource("/tech/botonOver.jpg")));
boton.addActionListener(this);
boton.setActionCommand("bot"+i);
calculadora.add(boton);
}
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setLocationRelativeTo(null);
}
@Override
public void actionPerformed(ActionEvent a) {
if(a.getActionCommand().equals("bot5")){
label.setText("7");
}else if(a.getActionCommand().equals("bot6")){
label.setText("8");
}else if(a.getActionCommand().equals("bot7")){
label.setText("9");
}
}
}