我試圖用從網站獲取的信息(即價格和項目名稱)填充JTable。我有一個課程要求用戶輸入一個URL並掃描頁面的價格和項目名稱以及URL。目前它將所有解析的信息存儲在三個不同的文本文件中,一個用於價格,一個用於項目名稱,另一個用於URL。我試圖用這些信息填充一個包含三列(項目名稱,價格和URL)的JTable,但是每次我掃描新頁面時,文本文件都會被覆蓋,並且以前的信息會丟失。我不一定需要通過文本文件填充JTable,我只是需要它以某種方式獲取信息。這是我的一些代碼。使用解析的信息填充JTable
public BestBuy (JFrame frame){
super (frame, "Best Buy URL", true);
setLayout (new FlowLayout());
label = new JLabel ("Enter Best Buy URL");
add (label);
url = new JTextField ("Enter URL Here", 40);
add (url);
submit = new JButton ("Submit");
add (submit);
event b = new event();
submit.addActionListener (b);
}
public class event implements ActionListener{
public void actionPerformed (ActionEvent b){
try {
String datab = url.getText(); //perform your operation
datab = datab.trim();
datab = datab.toLowerCase();
Document document = Jsoup.connect(datab).get();
String amountb = document.select(".amount").first().text();
String nameb = document.select(".product-title").first().text();
FileWriter stream = new FileWriter ("C:\\Users\\Daniel\\Desktop\\price.txt");
BufferedWriter out = new BufferedWriter (stream);
out.write(amountb + "\n");
out.newLine();
out.close();
FileWriter stream1 = new FileWriter ("C:\\Users\\Daniel\\Desktop\\itemName.txt");
BufferedWriter out1 = new BufferedWriter (stream1);
out1.write(nameb + "\n");
out1.newLine();
out1.close();
FileWriter stream2 = new FileWriter ("C:\\Users\\Daniel\\Desktop\\url.txt");
BufferedWriter out2 = new BufferedWriter (stream2);
out2.write(datab + "\n");
out2.newLine();
out2.close();
}
catch (Exception ex) {
}
setVisible (false);
}
此課程向用戶詢問最佳購買網址並解析給定頁面的商品名稱,然後將價格寫入我的桌面上的文件。
public FirstGui(){
setLayout (new FlowLayout());
String[] columnName = {"Item Name", "Price", "URL"};
Object [] [] data = {
};
table = new JTable (data, columnName);
table.setPreferredScrollableViewportSize(new Dimension (500, 300));
table.setFillsViewportHeight (true);
JScrollPane scrollpane = new JScrollPane (table);
add (scrollpane);
現在我試圖將解析的信息放到我的JTable上,但我不知道如何去做。我試圖做
public getdatab() {
return datab;
}
public getnameb() {
return nameb;
}
public getamountb() {
return amountb;
}
但所有這些字符串都在一個無效,所以沒有工作。正如你可能看到我對Java很新,這可能有一個明顯的解決方案,但我一直堅持這幾天,不能弄明白。謝謝。
您的'getdatab()'沒有返回類型。那你的意思是無效的嗎? – csmckelvey
您應該設置模型(填充數據)並使用setTableModel()方法將其附加到表格。 – KernelPanic