# Отредактировано # ниже - часть объявления
class test extends JFrame implements ActionListener
{
JTextField jtfs[]=new JTextField[7];
JButton jb =new JButton("add");
JPanel text=new JPanel();
String teststring[]={"hello","welcome","to","this","world"};
int i=0;
public test()
{ setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500,500);
setLayout(new GridLayout(1,2));
text.setLayout(new GridLayout(5,1));
for(int i=0;i<=teststring.length;i++)
{
jtfs[i]=new JTextField(" ");
text.add(jtfs[i]);
}
add(text);
add(jb);
jb.addActionListener(this);
setVisible(true);
}
проблема начинается здесь, мне нужна помощь в части ниже
public void actionPerformed(ActionEvent aa)
{
if(aa.getSource()==jb)
{
for(int i=0;i<=teststring.length;i++)
{
try{
jtfs[i].setText(teststring[i]);
jtfs[i].setForeground(Color.RED);
if(i!=0)
{ jtfs[i-1].setForeground(Color.RED);
jtfs[i-1].setBackground(Color.BLACK);
}
/*here is my code i have tried
code has to be modified here
Thread.sleep(1000);
*/
}
catch(Exception ae)
{
jtfs[teststring.length].setText("More than limit stop adding");
jtfs[teststring.length].setForeground(Color.RED);
}
}
}
}
public static void main(String []args)
{
new test();
}
}
Когда я пробовал Thread .sleep (1000), программа GUI зависает и отображает только результирующий вывод, этот сон не может отображать промежуточные изменения во время сна.
Я думаю, что не могу использовать класс Timer, поэтому есть другой способ решить эту проблему, чтобы я мог визуализировать изменения.
примечание: я упростил свою программу только для одного случая, есть много случаев, поэтому использование класса Timer не может быть решением, поскольку программа не выполняется рекурсивно