簡體   English   中英

從jcombobox獲取文件路徑

[英]Get the file path from 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的新手,有人可以幫我這個忙。 謝謝。

updateData()您將從一個空字符串創建一個新URL 這就是引發您異常的原因。

您可以看到在updateData()的第一行上,您將csvFilename定義為空字符串。 您永遠不會為該變量重新分配值,因此當您在URL構造函數中使用它時,它仍然為空。
我們可以URL構造器規范中看到,如果規范出現問題,則會拋出您所看到的異常。
可以做的是更改String csvFilename = ""; String csvFilename = path; ,看看是否可以解決您的問題。

不過,實際上,由於您是在try catch之后立即重寫URL變量,因此您應該能夠刪除該塊並完全避免該問題。 嘗試這個:

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
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM