我在编写Java窗口程序时,编写了一个运行的按钮,点击运行按钮可以调用一个方法,第一个输入数据点击运行按钮,是可以运行的,在不关闭窗口的情况下输入第二组数据运行得出的结果还是第一次的,我发现一部分原因是因为第一次输入的数据保存到方法中的arraylist里面因为第一组的限制第二组无法读取,我在方法中增加了clear()清除第一组的数据,让第二组数据可以读取到,但是结果还是不对的,我在这个方法内还调用了DFS的算法,问题应该就是出现在这里,这个问题怎么解决呢
光看你描述,没代码也不知道什么情况。不过你可以debug一下,看看第二次传到后台的数据是不是第二次输入的,如果不是那问题就是传输过程有问题,如果是那再看看这个值是怎么添加。list的是不是过程中被什么修改了。
看看我写的,你再改改你的
package csdn006;
import javax.swing.*;
import java.util.ArrayList;
import java.util.List;
/**
* 我在编写Java窗口程序时,编写了一个运行的按钮,点击运行按钮可以调用一个方法,
* 第一个输入数据点击运行按钮,是可以运行的,在不关闭窗口的情况下输入第二组数
* 据运行得出的结果还是第一次的,我发现一部分原因是因为第一次输入的数据保存到
* 方法中的arraylist里面因为第一组的限制第二组无法读取,我在方法中增加了
* clear()清除第一组的数据,让第二组数据可以读取到,但是结果还是不对的,
* 我在这个方法内还调用了DFS的算法,问题应该就是出现在这里,这个问题怎么解决呢
*/
public class JFrameTest extends JFrame {
public static void main(String[] args) {
new JFrameTest();
}
public JFrameTest() {
super("xiao JJ");
JPanel jPanel = new JPanel();
JButton jButton = new JButton("RUN");
JLabel jLabel = new JLabel("我是默认文本");
JTextField jTextField = new JTextField();
jTextField.setColumns(20);
jButton.addActionListener(e -> {
jLabel.setText(test(jTextField).toString());
});
jPanel.add(jTextField);
jPanel.add(jButton);
jPanel.add(jLabel);
add(jPanel);
setBounds(200,200,300,200);
setVisible(true);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static List<String> test(JTextField jTextField) {
List<String> list = new ArrayList<>(2);
list.add(jTextField.getText());
return list;
}
}