我试图用从网站获取的信息(即价格和项目名称)填充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