2016-04-19 4 views
0

Я пытаюсь выбрать свой файл из jcombobox и отображать данные в текстовой области. В настоящее время, у меня есть список из имени файла, но теперь когда я выберите имя файла из выпадающего списка его показать мне эту ошибку:Получить путь к файлу из jcombobox

SEVERE: null 

Это мой текущий код:

private void jCmboxActionPerformed(java.awt.event.ActionEvent evt) {          
    // TODO add your handling code here: 
    //JComboBox jCmbox = (JComboBox)evt.getSource(); 
    String stateName = (String)jCmbox.getSelectedItem(); 
    updateData(stateName); 

}          

public void updateData(String path){ 
    String csvFilename = ""; 
    URL url; 
    try { 
     url = new URL(csvFilename); 
    } catch (MalformedURLException ex) { 
     Logger.getLogger(VisualizationPanel.class.getName()).log(Level.SEVERE, null, ex); 
    } 
    url = VisualizationPanel.class.getResource(path); 
    CSVData data = CSVData.loadFromFile(url.toString()); //loads the csv data 
    VisualizationPanel visPanel = new VisualizationPanel(this, data); //draws the vis panel and adds the data to it 
} 

Я новичок в Java может кто-то мне поможет в этом. Спасибо.

+0

В основном вы делаете: 'новый URL («»)' – Berger

+0

я совершенно не имею понятия, как это сделать на самом деле, я просто взял некоторые учебник из сети и редактировать код и попробовать его , вы можете помочь мне. – anonymous5671

+1

Попробуйте «новый URL (путь)» и укажите полную трассировку стека при возникновении ошибок. – Berger

ответ

0

В updateData() вы создаете новый URL из пустой строки. Это то, что бросает ваше исключение.

Вы можете видеть, что в первой строке updateData() вы определяете csvFilename как пустую строку. Вы никогда не переназначаете значение этой переменной, поэтому, когда вы приходите использовать его в конструкторе URL, он по-прежнему пуст.
Мы можем видеть from the URL constructor spec, что исключение, которое вы видите, будет выброшено, если что-то не так с spec.
Что вы можете сделать, это изменить линию String csvFilename = ""; на String csvFilename = path; и посмотреть, исправляет ли это вашу проблему.

На самом деле, поскольку вы переписываете переменную URL прямо после try catch, вы должны просто удалить этот блок и полностью исключить эту проблему. Попробуйте это:

public void updateData(String path){ 
    String csvFilename = ""; 
    URL url = VisualizationPanel.class.getResource(path); 
    CSVData data = CSVData.loadFromFile(url.toString()); //loads the csv data 
    VisualizationPanel visPanel = new VisualizationPanel(this, data); //draws the vis panel and adds the data to it 
} 
+0

Показывает исключение нулевого указателя. Как я могу это решить? – anonymous5671

+0

@anon Откуда возникает исключение null-указателя? – Tiz

+0

@ anonymous5671 Не могу помочь, если я не знаю, откуда приходит исключение :) – Tiz

Смежные вопросы