1

コマンドをリッスンできるギルドを選択できる JavaFX ベースの Discord Bot を作成すると、Bot が接続されているサーバーの数と同じ数の ToggleButtons が作成されます。これが私の方法です:

public void generateButtons() {
    int y = 14;
    discordVBox = new VBox();
    JFXToggleButton tglBtn;
    discordVBox.setSpacing(30);
    for (final Guild g : DiscordBot.jda.getGuilds()) {
        if (g == null || g.getTextChannels().isEmpty() || !DiscordBot.isDiscordBotOnline()) {
            PrintConsole.printError("Error creating Toggle Buttons.");
            return;
        } else {
            tglBtn = new JFXToggleButton();
            tglBtn.setText(g.getName());
            tglBtn.setStyle("-jfx-toggle-color: #d35400;");
            tglBtn.setLayoutX(14);
            tglBtn.setLayoutY(y);
            tglBtn.setPrefHeight(56);
            tglBtn.setPrefWidth(141);
            discordVBox.getChildren().add(tglBtn);
            y += 63;
            System.out.println("DISABLED: " + tglBtn.isDisabled());
            System.out.println("VISIBLE: " + tglBtn.isVisible());
            System.out.println("PARENT: " + tglBtn.getParent());
            tglBtn.setVisible(true);
        }
    }
    System.out.println("VBOX PARENT: " + discordVBox.getParent());
    System.out.println("VBOX CHILDREN: " + discordVBox.getChildren());
}

すべての出力を無視します。私はそれらすべてをデバッグしようとしていましたが、コードごとに問題ないように見えましたが、目には見えませんでした。シーン自体はほとんどが FXML 経由であり、Jfoenix と呼ばれる JavaFX 用のカスタム ライブラリを使用しています。メソッド「generateButtons」は、Discord ボットがオンラインになるとすぐに実行されます。

4

1 に答える 1