所以我在一个扩展 JPanel 的类中有这个按钮:
startTSP.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
scatterPlotPanel.findShortestPath();
}
});
我的问题是,actionListener 中的方法(名称为 findShortestPath() )是一个必须在另一个 JPanel 上不断调用 repaint() 的方法。问题是,一旦我单击按钮 startTSP,它就不会重新绘制或任何东西。它只是挂起,直到方法完成运行(给定输入可能需要很长时间)。它唯一一次重绘就在最后。如果重要,我可以发布 findShortestPath() 的方法,但我认为其中的内容并不重要,因为我的问题是,我如何让它不挂起并正常执行该方法,就好像该方法是在主类中调用?
如果问题太模糊,我很抱歉,如果有人不明白,我会尽力解释(只需在评论中提及)。
此外,基本上这种方法正在做的是,递归地排列坐标点的数组列表,并找到点列表之间的最短路径。这是一个简单的蛮力 TSP 解决方案。