Java Windowbuilder AWT-EventQueue-0 Ошибка?
У меня есть программа, в которой пользователь вводит имя исполнителя и использует Last.fm для поиска лучших треков этого исполнителя, похожих исполнителей и похожих треков. У меня есть три кнопки для каждой из них, но когда я нажимаю на третью кнопку, которая похожа на трек, она не переходит на эту страницу и выдает ошибку:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at java.awt.Container.addImpl(Unknown Source)
at java.awt.Container.add(Unknown Source)
at Server$9.actionPerformed(Server.java:675)
...
Я разместил соответствующий код ниже. Две другие кнопки работают совершенно нормально, поэтому я не знаю, что с этим. Любой вклад будет очень полезным! Если вам нужно, чтобы я добавил код, дайте мне знать.
btnSimilarTrack.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
MusicDatabase.getContentPane().removeAll();
MusicDatabase.getContentPane().add(btnSearch);
MusicDatabase.getContentPane().add(btnProfile);
MusicDatabase.getContentPane().add(btnSignOut);
MusicDatabase.getContentPane().add(lblEnterArtistForSimilarTrack);
MusicDatabase.getContentPane().add(lblEnterSongForSimilarTrack);
MusicDatabase.getContentPane().add(ArtistInputForSimilarTrack);
MusicDatabase.getContentPane().add(SongInputForSimilarTrack);
MusicDatabase.getContentPane().add(btnGoSearch);
MusicDatabase.getContentPane().repaint();
btnGoSearch.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
if
(ArtistInputForSimilarTrack.getText().isEmpty()||SongInputForSimilarTrack.getText().isEmpty()) {
return;
}
try {
//user types in artist, goes to site for SIMILAR TRACKS
Scanner in = new Scanner (System.in);
String site = "http://ws.audioscrobbler.com/2.0/?method=track.getsimilar&artist=BLANKARTIST&track=BLANKTRACK&api_key=bc5957059ef480bb46bd37e834375495";
System.out.println("Enter an artist name: ");
String artist = ArtistInputForSimilarTrack.getText();
System.out.println("Enter the song title: ");
String song = SongInputForSimilarTrack.getText();
String newSite = site.replace("BLANKARTIST", artist); //replace "BLANKARTIST" with artist in URL
String finalSite = newSite.replace("BLANKTRACK", song); //replace "BLANKTRACK with track in URL
//System.out.println("Old site: " + site);
//System.out.println("New site: " + newSite);
System.out.println("Site " + finalSite);
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document similar = db.parse(new URL(finalSite).openStream());
similar.getDocumentElement().normalize();
//System.out.println(similar.getDocumentElement().getNodeName());
NodeList nList = similar.getElementsByTagName("track");
System.out.println("Most similar track to " + song + " by " + artist + ":");
for (int t = 0; t < 1; t++) {
Node nNode = nList.item(t);
//System.out.println("\n" + nNode.getNodeName());
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
System.out.println("\nSong name: " + eElement.getElementsByTagName("name").item(0).getTextContent());
//pressing enter makes label display similar artists
lblDisplaySimilarTrack.setText("<html><center>" + "Most similar track to " + song + " by " + artist + ": " + "<br>" + "Song name: " + eElement.getElementsByTagName("name").item(0).getTextContent() + "</center></html>");
MusicDatabase.getContentPane().add(lblDisplaySimilarTrack);
MusicDatabase.getContentPane().add(btnSignOut);
MusicDatabase.getContentPane().repaint();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}