Javafx Java FXML将ObservableList添加到TableView
我无法在表视图中显示我的可观察列表。我没有得到任何错误。我正在检查可观察列表和列表是否有价值,并且一切看起来都很好。我不知道哪里出了问题。我曾尝试在FXML代码中添加ValueFactory,但它仍然不起作用Javafx Java FXML将ObservableList添加到TableView,javafx,fxml,Javafx,Fxml,我无法在表视图中显示我的可观察列表。我没有得到任何错误。我正在检查可观察列表和列表是否有价值,并且一切看起来都很好。我不知道哪里出了问题。我曾尝试在FXML代码中添加ValueFactory,但它仍然不起作用 FXML <TableView fx:id="laczenie" layoutX="641.0" layoutY="52.0" prefHeight="415.0" prefWidth="438.0"> <columns> &l
FXML
<TableView fx:id="laczenie" layoutX="641.0" layoutY="52.0" prefHeight="415.0" prefWidth="438.0">
<columns>
<TableColumn prefWidth="75.0" text="Wezly" fx:id="C1" >
</TableColumn>
<TableColumn prefWidth="361.0" text="MozliwePolaczenia" fx:id="C2">
</TableColumn>
</columns>
</TableView>
JavaFx Controller
public class FXMLDocumentController implements Initializable {
private JavaFXApplication4 mainApp;
public List<Krawendzie> list = new ArrayList<Krawendzie>();
@FXML
private TableColumn C1;
@FXML
private TableColumn C2;
@FXML
private TableView<Krawendzie> laczenie;
@FXML
private Label label;
@FXML
private ComboBox<String> combo;
@FXML
private GridPane Scena;
@FXML
private void handleButtonAction(ActionEvent event) {
System.out.println("You clicked me!");
label.setText("Hello World!");
}
@Override
public void initialize(URL url, ResourceBundle rb) {
C1.setCellValueFactory(new PropertyValueFactory<Krawendzie,Integer>("Wezel"));
C2.setCellValueFactory(new PropertyValueFactory<Krawendzie,Integer>("Mozliwosci"));
combo.getItems().addAll("2","3","4","5","6","7","8");
list.removeAll(list);
}
@FXML
private void itemselected(ActionEvent event){
}
@FXML
private void rysuj(ActionEvent event) {
rysuj2(Integer.parseInt(combo.getValue()));
}
private void rysuj2(Integer Ilosc){
list.removeAll(list);
Scena.getChildren().clear();
laczenie = new TableView<Krawendzie>();
File f = new File("././Image/Imapges1.jpg");
Image image = new Image(f.toURI().toString());
Integer ilosc = 0;
for (int i = 0; i<=Ilosc;i++)
{
for(int k = 1;k<Scena.getColumnConstraints().size();k=k+2)
{
if(k%2 != 0)
{
Circle circle = new Circle(20, 20, 20);
circle.setFill(new ImagePattern(image));
Scena.add(circle,k,i);
list.add(new Krawendzie(ilosc,ilosc));
ilosc++;
}
if(ilosc == Ilosc)
break;
}
if(ilosc == Ilosc)
break;
}
getData();
}
public void getData()
{
ObservableList<Krawendzie> obsList = FXCollections.observableArrayList(list);
laczenie.setItems(obsList);
//return obsList;
}
}
And Main Application
public class JavaFXApplication4 extends Application {
@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
}
FXML
JavaFx控制器
公共类FXMLDocumentController实现可初始化{
私有JavaFXApplication4MainApp;
public List=new ArrayList();
@FXML
私人表格C1栏;
@FXML
私人表格C2栏;
@FXML
私人桌面视图;
@FXML
自有品牌;
@FXML
私人组合框组合;
@FXML
私人住宅;
@FXML
私有无效把手按钮操作(ActionEvent事件){
System.out.println(“你点击了我!”);
label.setText(“你好,世界!”);
}
@凌驾
公共void初始化(URL、ResourceBundle rb){
C1.setCellValueFactory(新财产价值工厂(“Wezel”);
C2.setCellValueFactory(新财产价值工厂(“Mozliwosci”);
combo.getItems().addAll(“2”、“3”、“4”、“5”、“6”、“7”、“8”);
list.removeAll(列表);
}
@FXML
已选择私有无效项(ActionEvent事件){
}
@FXML
私有void rysuj(ActionEvent事件){
rysuj2(Integer.parseInt(combo.getValue());
}
私有void rysuj2(整数Ilosc){
list.removeAll(列表);
Scena.getChildren().clear();
laczenie=newtableview();
文件f=新文件(“././Image/Imapges1.jpg”);
图像=新图像(f.toURI().toString());
整数ilosc=0;
对于(int i=0;i对不起,我有一个问题的答案。我只需要删除
laczenie=newtableview();
因为我正在创建talbeview的新对象,所以无法工作