Моя программа отображает пользовательский интерфейс и обновляет JLabel в соответствии с данным пользователем.Закрытие предыдущего экземпляра конструктора JAVA
Мой код: -
public static void main(String[] args)
{
createUI();
}
public void createUI()
{
// creates the UI using JSwing
// takes userinput from textfield and stores it in variable:- path.
// The UI is updated on the click of button.
JButton bu = new JButton("Search");
bu.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e)
{
finder mm= new finder(path);
String namefomovie = mm.find("Title");
//nameb is a Jlabel in the UI
nameb.setText(namefomovie);
}
}
нашедший класс: -
public class finder
{
static String metadata="";
public finder(String path) throws FileNotFoundException
{
File myfile = new File(path);
Scanner s = new Scanner(myfile);
while(s.hasNextLine())
metadata+=s.nextLine()+"\n";
}
public String find(String info)
{
//finds the required info stored in metadata and return the answer.
return ans;
}
}
Проблема: -
В процессе выполнения, пользовательский интерфейс создается, и я дать ввод и все методы вызываются и выполняются, и JLabel изменился в первый раз.
Но когда я даю вход второй раз и нажимаю кнопку поиска, текст Jlabel остается таким же.
finder конструктор создает метаданные в соответствии с данным вводом, поэтому, если пользователь вводит несколько раз несколько раз, будет инициировано несколько экземпляров конструктора.
Теперь я немного отлаживал и обнаружил, что во второй раз метаданные предыдущего конструктора все еще находятся в памяти вместе с новыми метаданными.
Таким образом, выход mm.find("title");
второй раз совпадает с выходом, который мы получили в первый раз.
Пожалуйста, помогите мне исправить это и благодарить заранее.
Серьезно так просто. Это работает, спасибо. – Mohit