私は現在、学生が登録できるコースのJListを表示するプロジェクトに取り組んでいます。リスト項目をクリックすると、変数がsetTextArea()メソッドに渡され、txtファイル名が取得されます。たとえば、Computer Scienceをクリックすると、courseName変数が渡され、URLに挿入されてtxtファイルが取得されます。getClass()。getResourceを使用してJTextAreaに.txtファイルを取得する
これは完全に正常に動作します。 JARファイルを使用する場合を除きます。私は、getClass()とgetResource()を使ってJARを使うときにリソースにアクセスする必要があることを知っています。しかし、私は働くことができないようです。ここにはオリジナルコードがあります。
public void valueChanged(ListSelectionEvent e)
{
int selectionNum = courseList.getSelectedIndex();
String courseName;
//Switch statement to pass strings to method
switch(selectionNum)
{
case 0: courseName = "computer_science";
setTextArea(courseName);
currentCourseClicked ="0";
break;
case 1: courseName = "business";
setTextArea(courseName);
currentCourseClicked ="1";
break;
case 2: courseName = "business2";
setTextArea(courseName);
currentCourseClicked ="2";
break;
case 3: courseName = "engineering";
setTextArea(courseName);
currentCourseClicked ="3";
break;
case 4: courseName = "sport";
setTextArea(courseName);
currentCourseClicked ="4";
break;
case 5: courseName = "early";
setTextArea(courseName);
currentCourseClicked ="5";
break;
case 6: courseName = "social";
setTextArea(courseName);
currentCourseClicked ="6";
break;
}
} //End of valuesChanges Method
/**
* This method is used to read the file, with the course name passed
* from the valueChanged method.
* @param courseName
*/
@SuppressWarnings("resource")
public void setTextArea(String courseName)
{
descriptionPanel.setVisible(true);
enrol.setVisible(true);
enrol.setFont(new Font("", Font.BOLD, 20));
try
{
//This retrieves the information from a text file
FileReader file = new FileReader("./res/courseInfo/" +courseName + ".txt");
Scanner fileReaderScan = new Scanner(file);
String storeAll = "";
//while loop to read trough lines of the text file
while(fileReaderScan.hasNextLine())
{
String temp = fileReaderScan.nextLine() + "\n";
storeAll += temp;
}
descriptionTextArea.setText(storeAll);
}
catch (FileNotFoundException e1)
{
e1.printStackTrace();
}
} //end of setTextArea method
次に、getClassとgetResourceを使用しようとしました。 URLでは機能しません。URL
タイプをString
に変更するように求められます。私がこれを行うと、getClassとgetResourceは動作しません。
私は後でString urlString = url + "";
を使用して文字列にURLを連結しようとしたが、これもうまくいきませんでした。
これについてどうやったらいいですか?
あなたのリソースが正確ですか?あなたのjarファイルで?もしそうなら正確に? –
URLがFileReaderで機能しないためです。 'url'をString型に変換するかどうかを尋ねます。しかし、私がそうすると、getClass()。getResourceは機能しません。 – Aaronward
*「JARファイルを使用する場合を除いて」*は何を意味しますか? – aribeiro