У меня есть JTree, который я использую как дерево файлов.Если я выберу новый файл и выберу тот же, который уже был выбран, дерево по какой-то причине зависнет.Следует удалить старый JScrollPane, содержащий дерево, и заменить его новым, и он будет работать нормально, если я выберу другой файл, но не тот же.Остальная часть графического интерфейса все еще работает, это просто дерево, которое зависает.Вот соответствующий код:
if ("browse".equals(e.getActionCommand())) {
returnVal = fc.showOpenDialog(DSAuto.this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
filename = file.getAbsolutePath();
l1.setText("Job Location: " + filename);
c.fill = GridBagConstraints.BOTH;
c.weightx = 1.0;
c.gridx = 0;
c.gridy = 1;
c.gridwidth = 10;
c.gridheight = 9;
c.ipady = 0;
if (rm)
pane.remove(ft1);
else
pane.remove(sp1);
if (rm2) {
pane.remove(l3);
rm2 = false;
}
if (!(file.isDirectory() || file.isFile())) {
l3 = new JLabel("404 File Not Found");
pane.add(l3, c);
rm2 = true;
} else {
ft1 = new FileTree(file);
ft1.all = allB;
pane.add(ft1, c);
rm = true;
}
}
}
Я также могу предоставить код для класса FileTree, если это необходимо.