char c = ((JButton) e.getSource()).getText().charAt(0);
if (c >= '0' && c <= '9') {
textfield1.setText(textfield1.getText() + c);
}
Buenas,
Sobre tu primera duda, es muy sencillo lo que hace.
Paso por paso:
- (Button)e.getSource() -> Obtiene el componente que originó el evento (tiene que realizar un casting porque getSource() devuelve un objeto de la clase Object).
- .getText() -> obtiene la etiqueta del botón (si el botón tiene el texto "1" devuelve "1").
- .charAt(0) -> obtiene el primer caracter de la cadena obtenido antes como tipo char. Lo hace para posteriormente mirar si es un caracter entre el '0' y el '9'
- Verifica que se trate de un caracter entre el '0' y el '9' y en caso de que sea así significa que se ha pulsado un número y hay que añadirlo.
- textfield1.setText(textfield1.getText() + c) -> con textfield1.getText() obtiene la cadena de texto que está escrita en el campo de texto y lo añade al caracter c que has obtenido antes. Después utiliza .setText para poner como texto del campo el obtenido por la concatenación de lo que había antes escrito con el caracter obtenido (que es el del botón presionado).
Para mostrar una ventana con texto puedes usar JOptionPane.showMessageDialog (míralo en el API de Java).
Para cerrar la aplicación utiliza System.exit(0).
[EDITO] Te sugiero también que utilices los LayoutManager de Java y no hacerlo de manera absoluta. Para una calculadora el GridLayout es perfecto.
Te pongo un enlace con explicaciones:
http://chuwiki.chuidiang.org/index.p...outs#BoxLayout
También deberías usar arrays para guardar los JButton de los números, además de que saldría de manera muy natural.