Я читал о Swing Timers, и пример действительно не похож на то, что я пытался сделать, поэтому я нашел его логически запутанным, чтобы применить его к моей программе. Я начинаю думать, что для этого мне даже не нужен таймер.
Вот что я пытаюсь сделать:
Я делаю программу JFrame, в которой пользователь вводит номер кредитной карты в JTextField. Прежде чем они это сделают, есть JLabel, который говорит: «Пожалуйста, введите свой номер в текстовое поле», затем, как только они введут это в поле и нажмут «Ввод», в зависимости от того, определяет ли мой код, что номер карты действителен или недействителен, JLabel изменится на «Недействительный» или «Спасибо, обработка».
Тем не менее, я безуспешно нашел способ заставить его изменить текст на основе, он просто остается с тем текстом, который я изначально дал.
Так может ли кто-нибудь посмотреть мой код и изменить его, чтобы он делал то, что я прошу? Это было бы превосходно. Вы, ребята, были полезны в прошлом.
public class CreditGraphics {
public String cardNum;
public JFrame frame;
public JPanel panel;
public JLabel label;
public JTextField text;
public Timer timer;
public CreditGraphics() {
frame = new JFrame("HI");
panel = new JPanel();
label = new JLabel();
text = new JTextField(16);
panel.add(label);
panel.add(text);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel.setPreferredSize(new Dimension(500, 500));
frame.getContentPane().add(panel);
frame.pack();
frame.setVisible(true);
label.setText("Hi");
label.setText("Hello");
text.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
cardNum = text.getText();
timer = new Timer(2000,this);
timer.setInitialDelay(1000);
timer.start();
}
});
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new CreditGraphics();
}
});
}
public void checkCard(){
}
}