我正在開發基於groceryproducts的GUI項目。對於該程序,我有四個窗口(第一個是主窗口,第二個是將產品添加到庫存並將產品添加到分隔文本文件中,第三個是從庫存中刪除產品以及將其從分隔文本文件中刪除,第四個顯示從分隔的文本文件添加到庫存中的產品)。現在,我已經完成了三個窗口的製作,但是在展示添加到庫存中的產品時,我似乎一直陷入困境。對於查看產品,我在windows包中包含一個文件,其中包含viewGroceryProductInventory類將JTable添加到其中的不同窗口的所有窗口類。如何將數據添加到不同類的jtable?
package prog24178.javaassassins.project.window;
import java.util.ArrayList;
import javax.swing.*;
import javax.swing.table.*;
import prog24178.javaassassins.guiproject.GroceryProduct;
import prog24178.javaassassins.project.io.ViewProductsFromInventory;
/**
*
* @author Bharat
*/
public class ViewGroceryProductsWindow extends JPanel {
//Create table with column names
private String[] columnNames = {"Name of Product"
,"UPC Code","Price","Stock"
,"International","Department"};
private Object[][] data = {};
private DefaultTableModel tableModel =
new DefaultTableModel(data,columnNames);
private JTable table = new JTable(tableModel);
public ViewGroceryProductsWindow(){
JScrollPane jscroll = new JScrollPane(table);
this.add(jscroll);
tableModel.addRow(data);
}
}
我有另一個io軟件包,其中有不同的類去除和添加產品分隔文本文件。對於ViewAGroceryProductInInventory類我已經完成從文件中提取數據,但現在應該如何將我的字段添加到窗口包中的windows類中定義的JTable的行中?我知道行的數據必須插入到tableModel中才能顯示該行。現在,我面臨的問題是,我正在從另一個包中的另一個類執行此操作,所以如何將文本文件中的字段添加到io包中類中的窗口包中的類中的行數據?
package prog24178.javaassassins.project.io;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Scanner;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import prog24178.javaassassins.guiproject.GroceryProduct;
/**
*
* @author Bharat
*/
public class ViewProductsFromInventory{
Scanner input = null;
int counter = 0;
public ViewProductsFromInventory(){
File file = new File("GroceryProduct.txt");
if(!file.exists()){
System.out.println("GroceryProduct.txt doesn't exist");
System.exit(0);
}
try{
input = new Scanner(file);
ArrayList<GroceryProduct> inventory = new ArrayList();
int counter=0;
while(input.hasNext()){
String record = input.next();
String[] fields = record.split("\\|");
String nameOfProduct= fields[0];
String upcCodeOfProduct = fields[1];
double priceOfProduct = Double.parseDouble(fields[2]);
Boolean productInStock = Boolean.parseBoolean(fields[3]);
Boolean FromInternational = Boolean.parseBoolean(fields[4]);
String productDepartment = fields[5];
GroceryProduct groceryProduct =
new GroceryProduct(nameOfProduct,
upcCodeOfProduct,priceOfProduct,
productInStock,
FromInternational,
productDepartment);
inventory.add(groceryProduct);
}
input.close();
}catch(FileNotFoundException ex){
System.out.print(ex.getLocalizedMessage());
}
}
}