los números anteriores ingresados se sobrescriben JFRAME
Frecuentes
Visto 31 veces
1
Actualmente estoy tratando de crear un panel de acceso simple que permita al usuario hacer clic en los números y aparecerá en el textfield
arriba, pero cuando se hace clic en el botón textfield
se está poblando pero el número anterior se está sobrescribiendo. A continuación se muestra el código que tengo actualmente. Es btn1
& btn2
Me estoy centrando en este momento:
package securitySystem;
import java.awt.*;
import javax.swing.*;
import java.sql.*;
import java.awt.event.*;
public class accessPanel extends JFrame {
public static void main (String args[]){
accessPanel gui= new accessPanel ();
gui.setSize (360, 400);
gui.setLocationRelativeTo(null);
gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gui.setVisible(true);
gui.setTitle("Access Panel");
gui.setLayout(new BorderLayout());
gui.setBackground(Color.BLACK);
}
JButton btn1= new JButton("1");
JButton btn2= new JButton("2");
JButton btn3= new JButton("3");
JButton btn4= new JButton("4");
JButton btn5= new JButton("5");
JButton btn6= new JButton("6");
JButton btn7= new JButton("7");
JButton btn8= new JButton("8");
JButton btn9= new JButton("9");
JButton btn0= new JButton("0");
JTextField pin = new JTextField();
public accessPanel (){
setLayout(null);
pin.setBounds(0,0,340,40);
add(pin);
btn1.setBounds(0,40,100,70);
add(btn1);
btn2.setBounds(120,40,100,70);
add(btn2);
btn3.setBounds(240,40,100,70);
add(btn3);
btn4.setBounds(0,120,100,70);
add(btn4);
btn5.setBounds(120,120,100,70);
add(btn5);
btn6.setBounds(240,120,100,70);
add(btn6);
btn7.setBounds(0,200,100,70);
add(btn7);
btn8.setBounds(120,200,100,70);
add(btn8);
btn9.setBounds(240,200,100,70);
add(btn9);
btn0.setBounds(120,280,100,70);
add(btn0);
}
public void calcButtons()
{
btn1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
pin.setText(btn1.getText());
}
});
btn2.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
pin.setText(btn2.getText());
}
});
}
}
1 Respuestas
0
Tenga una cadena global a la que pueda agregar los números cada vez que se haga clic en un botón
public class accessPanel extends JFrame {
String word = "";
...
btn2.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
word += btn2.getText();
pin.setText(word);
}
});
}
Si usted tiene una clear
botón, simplemente establezca la cadena en ""
en su acción Realizada
Respondido el 03 de diciembre de 13 a las 13:12
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas jframe or haz tu propia pregunta.
Perfecto, muchas gracias! ¿Hay alguna mejora en el código que pueda sugerir? - Adam
Um, no realmente, tu código se ve bien. Por favor acepte la respuesta si esto funciona para usted. - Pablo Samsotha
Ahora tengo otro problema, también he creado un botón de borrado y cuando se hace clic, los números anteriores permanecen pero se ha borrado. Lo único es que quiero que el cuadro de texto se muestre vacío una vez que se hace clic en él. - Adam
Necesitas configurar el texto después de configurar la cadena en
""
tal como lo hiciste en los otros métodos. - Pablo Samsotha¡gracias de nuevo! eso fue tan simple, he estado en esto por mucho tiempo así que puedo tomar un descanso jaja - Adam