在JavaFX上动态添加和填充选项卡

六月

我想创建一个标签并依次依次依次填充每个标签,但最多只能填充一个标签。我做了一些研究,并意识到不可能将相同的FlowPane放在多个地方,但是我不知道该怎么做。我尝试了几种封装方法,要么生成错误,要么结果保持不变。谢谢。

这是我的代码:

public class ButtonController implements Initializable{
    @FXML
    private Button bubu;
    @FXML
    private Button bb;
    @FXML
    private TabPane tp;

    List<Button> buttonlist = new ArrayList<>();
    List<Tab> tablist = new ArrayList<>();

    Main parent;

    public void setParent(Main main) {
        this.parent=main;
    }

    @FXML
    public void action() {
        try {
            Connection conn = bddUtil.dbConnect();
            tablist.clear();
            buttonlist.clear();
            ResultSet rs = conn.createStatement().executeQuery("select nom, prix from produit");
            ResultSet res = conn.createStatement().executeQuery("select nom from type_produit");
            while (res.next()) {
                Tab tab = new Tab(res.getString("nom"));
                FlowPane flowp = new FlowPane();
                tablist.add(tab);
                tab.setContent(flowp);
                flowp.setAlignment(Pos.BASELINE_CENTER);
                while (rs.next()) {
                    Button btn = new Button(rs.getString("nom") + "\n" + rs.getInt("prix") + "€");
                    btn.setPrefSize(200, 100);
                    btn.setTextAlignment(TextAlignment.CENTER);
                    btn.setAlignment(Pos.CENTER);
                    btn.setOnAction(new EventHandler<ActionEvent>() {
                        @Override 
                        public void handle(ActionEvent e) {
                            String txtBtn = btn.getText();
                        }
                    });
                    buttonlist.add(btn);
                }
                flowp.getChildren().addAll(buttonlist);
            }
            tp.getTabs().addAll(tablist);
        } catch (Exception e) {
            System.out.println("err: " + e);
            e.printStackTrace();
        }
    }

    class HandlerBtn1 implements EventHandler<ActionEvent>{
        public void handle(ActionEvent e) {
            System.out.println("ok");
        }
    }
}
六月

我终于找到了一种方法,它可能不是最好的方法,但是它可以工作,所以如果有人遇到同样的问题,我就把它留在这里!

    @FXML
private TabPane tp;

List<Button> buttonlist = new ArrayList<>();
List<Tab> tablist = new ArrayList<>();

Map<String, Tab> map= new HashMap<>();

ArrayList<String> nomProduits = new ArrayList<>();

@FXML
public void action() {
    try {
        Connection conn = bddUtil.dbConnect();
        tablist.clear();
        buttonlist.clear();
        ResultSet rs = conn.createStatement().executeQuery("select produit.nom, prix, type_produit.nom from produit inner join type_produit on produit.idType=type_produit.idType");
        while (rs.next()) {
            Tab tab = new Tab(rs.getString("type_produit.nom"));
            map.put(rs.getString("type_produit.nom"), tab);
            nomProduits.add(rs.getString("produit.nom"));
        }

        for (Tab tab : map.values()) {  
            FlowPane fp = new FlowPane();
            tab.setOnSelectionChanged(new EventHandler<Event>() {
                public void handle(Event event) {
                    fp.getChildren().clear();
                    for (int i = 0; i < nomProduits.size(); i++) {
                        Button btnPlat = new Button(nomProduits.get(i));
                        fp.getChildren().add(btnPlat);  
                    }
                    tab.setContent(fp);

                }
            });
        }
tp.getTabs().addAll(map.values());
    } catch (Exception e) {
        System.out.println("err: " + e);
        e.printStackTrace();
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将按钮添加到选项卡和选项卡区域JavaFX

来自分类Dev

jQuery Bootstrap动态选项卡(添加和删除)

来自分类Dev

动态添加新的选项卡视图

来自分类Dev

JavaFX-TabPane / Tab如何添加填充选项卡大小的内容?

来自分类Dev

砌体和动态选项卡

来自分类Dev

Javafx如何动态地向fxml文件中的现有选项卡添加内容

来自分类Dev

如何使用FXML在JavaFX中动态创建选项卡?

来自分类Dev

JqWidget选项卡-动态添加带有Ajax内容的选项卡

来自分类Dev

使用Angular UI Bootstrap在动态创建的选项卡上设置活动选项卡

来自分类Dev

如何动态添加bash选项卡完成?

来自分类Dev

如何为动态创建的导航选项卡添加值?

来自分类Dev

动态添加选项卡,单击按钮

来自分类Dev

Kendo Tabstrip MVC添加动态选项卡

来自分类Dev

向动态创建的选项卡添加内容 - Angular 7

来自分类Dev

Javafx如何动态地将内容添加到fxml文件中的现有选项卡

来自分类Dev

识别JavaFX选项卡

来自分类Dev

剔除组件未绑定在动态选项卡上

来自分类Dev

在反应导航的createMaterialTopTabNavigator上创建动态选项卡

来自分类Dev

单击动态选项卡上的调用Javascript函数

来自分类Dev

剔除组件未绑定在动态选项卡上

来自分类Dev

VueJS 动态选项卡

来自分类Dev

Angular-动态加载选项卡名称和组件

来自分类Dev

Angular-动态加载选项卡名称和组件

来自分类Dev

Angular-动态加载选项卡名称和组件

来自分类Dev

Angular-动态加载选项卡名称和组件

来自分类Dev

动态增加Flexdashboard中的选项卡和页面数量

来自分类Dev

如何动态填充选项卡栏控制器的选项卡栏?(迅速-iOS 9)

来自分类Dev

在同一选项卡和不同选项卡上打开JSF页面的目标

来自分类Dev

JavaFX选项卡式窗格,每个选项卡上都有表格视图?

Related 相关文章

  1. 1

    将按钮添加到选项卡和选项卡区域JavaFX

  2. 2

    jQuery Bootstrap动态选项卡(添加和删除)

  3. 3

    动态添加新的选项卡视图

  4. 4

    JavaFX-TabPane / Tab如何添加填充选项卡大小的内容?

  5. 5

    砌体和动态选项卡

  6. 6

    Javafx如何动态地向fxml文件中的现有选项卡添加内容

  7. 7

    如何使用FXML在JavaFX中动态创建选项卡?

  8. 8

    JqWidget选项卡-动态添加带有Ajax内容的选项卡

  9. 9

    使用Angular UI Bootstrap在动态创建的选项卡上设置活动选项卡

  10. 10

    如何动态添加bash选项卡完成?

  11. 11

    如何为动态创建的导航选项卡添加值?

  12. 12

    动态添加选项卡,单击按钮

  13. 13

    Kendo Tabstrip MVC添加动态选项卡

  14. 14

    向动态创建的选项卡添加内容 - Angular 7

  15. 15

    Javafx如何动态地将内容添加到fxml文件中的现有选项卡

  16. 16

    识别JavaFX选项卡

  17. 17

    剔除组件未绑定在动态选项卡上

  18. 18

    在反应导航的createMaterialTopTabNavigator上创建动态选项卡

  19. 19

    单击动态选项卡上的调用Javascript函数

  20. 20

    剔除组件未绑定在动态选项卡上

  21. 21

    VueJS 动态选项卡

  22. 22

    Angular-动态加载选项卡名称和组件

  23. 23

    Angular-动态加载选项卡名称和组件

  24. 24

    Angular-动态加载选项卡名称和组件

  25. 25

    Angular-动态加载选项卡名称和组件

  26. 26

    动态增加Flexdashboard中的选项卡和页面数量

  27. 27

    如何动态填充选项卡栏控制器的选项卡栏?(迅速-iOS 9)

  28. 28

    在同一选项卡和不同选项卡上打开JSF页面的目标

  29. 29

    JavaFX选项卡式窗格,每个选项卡上都有表格视图?

热门标签

归档