我正在尝试从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 :(得分:0)
在updateData()
中,您正在从空字符串创建新的URL
。这就是抛出异常的原因。
您可以在updateData()
的第一行看到您将csvFilename
定义为空字符串。您永远不会将值重新分配给该变量,因此当您在URL
构造函数中使用它时,它仍然是空的。
我们可以看到from the URL
constructor 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
}