2016-04-09 5 views
0
import java.util.Arrays; 
import java.util.List; 
import javafx.collections.FXCollections; 
import javafx.collections.ObservableList; 
import javafx.geometry.Insets; 
import javafx.geometry.Pos; 
import javafx.scene.Scene; 
import javafx.scene.control.Button; 
import javafx.scene.control.Label; 
import javafx.scene.control.TableColumn; 
import javafx.scene.control.TableView; 
import javafx.scene.control.cell.PropertyValueFactory; 
import javafx.scene.image.Image; 
import javafx.scene.image.ImageView; 
import javafx.scene.layout.AnchorPane; 
import javafx.scene.layout.BorderPane; 
import javafx.scene.layout.HBox; 
import javafx.scene.layout.VBox; 
import javafx.stage.Stage; 

public class Testtt{ 

    static List<String> products_list; 
    static List<String> quantity_list; 
    static List<String> selling_price_list; 
    static List<String> revenue_list; 
    static List<String> cost_price_list; 
    static List<String> profit_margin_list; 
    static List<String> profit_list; 


    public void TableView(Stage window){ 

     BorderPane layout = new BorderPane(); 
     AnchorPane top = new AnchorPane(); 
     layout.setTop(top); 
     Scene scene = new Scene(layout, 940, 630); 

     Image Small_logo = new Image("file:Smaller_Logo.png"); 
     ImageView Small_logoView = new ImageView(Small_logo); 
     Small_logoView.setFitWidth(100); 
     Small_logoView.setPreserveRatio(true); 

     Label title_message = new Label("Product sales"); 

     AnchorPane.setLeftAnchor(title_message, 5.0); 
     AnchorPane.setRightAnchor(Small_logoView, 5.0); 
     top.getChildren().addAll(title_message,Small_logoView); 

     VBox center = new VBox(10); 
     center.setPadding(new Insets(20,10,0,10)); 

     products_list = Arrays.asList("Coffee", "Tea"); 
     quantity_list = Arrays.asList("5", "10"); 
     selling_price_list = Arrays.asList("10", "4"); 
     revenue_list = Arrays.asList("100", "120"); 
     cost_price_list = Arrays.asList("5", "2"); 
     profit_margin_list = Arrays.asList("50%", "5%"); 
     profit_list = Arrays.asList("25", "20"); 

     TableColumn<getting_data,String> products = new TableColumn<getting_data,String>("Product name"); 
     products.setMinWidth(180); 
     products.setCellValueFactory(new PropertyValueFactory<>("product")); 

     TableColumn<getting_data,String> quantity = new TableColumn<getting_data,String>("Quantity"); 
     quantity.setMinWidth(120); 
     quantity.setCellValueFactory(new PropertyValueFactory<>("quantity")); 

     TableColumn<getting_data,String> Selling_price_column = new TableColumn<getting_data,String>("Selling price"); 
     Selling_price_column.setMinWidth(160); 
     Selling_price_column.setCellValueFactory(new PropertyValueFactory<>("Selling_price")); 

     TableColumn<getting_data,String> revenue_column = new TableColumn<getting_data,String>("Revenue"); 
     revenue_column.setMinWidth(120); 
     revenue_column.setCellValueFactory(new PropertyValueFactory<>("revenue")); 

     TableColumn<getting_data,String> cost_price_column = new TableColumn<getting_data,String>("Cost"); 
     cost_price_column.setMinWidth(80); 
     cost_price_column.setCellValueFactory(new PropertyValueFactory<>("cost")); 

     TableColumn<getting_data,String> profit_column = new TableColumn<getting_data,String>("Profit"); 
     profit_column.setMinWidth(90); 
     profit_column.setCellValueFactory(new PropertyValueFactory<>("profit")); 

     TableColumn<getting_data,String> profit_margin_column = new TableColumn<getting_data,String>("Profit margin"); 
     profit_margin_column.setMinWidth(170); 
     profit_margin_column.setCellValueFactory(new PropertyValueFactory<>("profit_margin")); 

     TableView<getting_data> Table = new TableView<>(); 
     Table.setItems(load_products()); 
     Table.getColumns().addAll(products, quantity, Selling_price_column,revenue_column,cost_price_column,profit_column,profit_margin_column); 

     center.getChildren().add(Table); 
     layout.setCenter(center); 

     HBox bottom_layout = new HBox(10); 
     bottom_layout.setAlignment(Pos.BOTTOM_RIGHT); 

     Button back = new Button("Go back to home screen"); 

     bottom_layout.getChildren().add(back); 
     layout.setBottom(bottom_layout); 

     scene.getStylesheets().add("Admin_style.css"); 

     window.setScene(scene); 
    } 

    public ObservableList<getting_data> load_products(){ 
     ObservableList<getting_data> products_observable_list = FXCollections.observableArrayList(); 
     for(int i= 0;i<2;i++){ 
      products_observable_list.add(new getting_data(products_list.get(i),quantity_list.get(i),selling_price_list.get(i),revenue_list.get(i),cost_price_list.get(i),profit_list.get(i),profit_margin_list.get(i)));} 
     return products_observable_list;} 

    public class getting_data{ 

     private String product; 
     private String quantity; 
     private String Selling_price; 
     private String revenue; 
     private String cost; 
     private String profit; 
     private String profit_margin; 

     public getting_data(String product,String quantity,String Selling_price,String revenue,String cost,String profit,String profit_margin){ 
      this.quantity = quantity; 
      this.product = product; 
      this.Selling_price = Selling_price; 
      this.revenue = revenue; 
      this.cost = cost; 
      this.profit = profit; 
      this.profit_margin = profit_margin;} 

     public String getProduct(){return product;} 
     public void setProduct(String product){this.product=product;} 

     public String getQuantity(){return quantity;} 
     public void setQuantity(String quantity){this.quantity=quantity;} 

     public String getSelling_price(){return Selling_price;} 
     public void setSelling_price(String Selling_price){this.Selling_price=Selling_price;} 

     public String getRevenue(){return revenue;} 
     public void setRevenue(String revenue){this.revenue=revenue;} 

     public String getCost(){return cost;} 
     public void setCost(String cost){this.cost=cost;} 

     public String getProfit(){return profit;} 
     public void setProfit(String profit){this.profit=profit;} 

     public String getMargin(){return profit_margin;} 
     public void setMargin(String profit_margin){this.profit_margin=profit_margin;} 

    } 
    public static void passer(Stage window){ 
     Testtt function = new Testtt(); 
     function.TableView(window); 
    } 
} 

Dieser Code zeigt nicht den Wert der Gewinnmargenspalte nicht zu sicher warum. Ich habe überprüft, ob es sich um ein Problem mit der Zeichenfolge handelte, indem ich die Gewinnmargenzeichenfolgen an anderen Stellen platziert habe und dass die korrekten Werte angezeigt wurden. Ich denke, es ist wahrscheinlich ein Fehler in meinen Getter und Setter, aber ich kann es nicht finden.Tabellenfehler in Java

Danke für die Hilfe! :)

Antwort

0

PropertyValueFactory verwendet die Methoden, um Zugriff auf die Eigenschaft/den Getter zu erhalten, nicht das Feld, das dieser Getter abruft. (Und wie sollte es? Der Getter ist nicht erforderlich, den Rückgabewert in einem Feld zu speichern.)

Sie müssen den richtigen Namen für die Bean verwenden. Da Ihr Feld istprofit_margin genannt, aber Ihre Getter/Setter ist getMargin/setMargin genannt, sollte es

new PropertyValueFactory<>("margin") 

statt

new PropertyValueFactory<>("profit_margin") 
+0

Oh okay war ich gelehrt anders lassen Sie mich versuchen, dass Mir wurde beigebracht, dass der Name der Variablen in den Gettern und Setter dort definiert werden musste. Vielen Dank –

Verwandte Themen