웹 사이트에서 가져온 정보 (가격 및 항목 이름)로 JTable을 채우려고합니다. 나는 사용자에게 URL을 입력하도록 요청하는 클래스를 가지고 있으며 가격뿐만 아니라 항목 이름과 URL도 스캔합니다. 현재 파싱 된 모든 정보를 가져 와서 가격, 항목 이름 및 URL에 대한 세 가지 텍스트 파일에 저장합니다. 이 정보로 3 개의 열 (항목 이름, 가격 및 URL)을 포함하는 JTable을 채우려고하지만 새로운 페이지를 스캔 할 때마다 텍스트 파일을 덮어 쓰고 이전 정보가 손실됩니다. 텍스트 파일을 통해 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);
}
이 클래스는 베스트 바이 (Best Buy) URL에 대한 사용자 요청 및 아이템 이름에 대한 특정 페이지를 구문 분석, 가격은 내 바탕 화면에있는 파일에 기록합니다.
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;
}
그러나이 모든 문자열은 작동하지 않는 공백 내에 있습니다. 당신이 아마 볼 수 있듯이 나는 자바에 아주 익숙하지 않다. 그리고 이것은 명백한 해답을 가지고 있을지 모르지만, 나는 이것을 며칠 동안 붙잡고 그것을 이해할 수 없다. 고맙습니다.
'getdatab()'에는 리턴 유형이 없습니다. 그게 네가 무효라는 뜻인가? – csmckelvey
모델을 설정하고 (데이터로 채워야 함) setTableModel() 메소드를 사용하여 테이블에 연결해야합니다. – KernelPanic