2

この例のような構成パネルを作成したいと思います:

ここに画像の説明を入力

問題は、左側の垂直メニューを作成する方法がわからないことです。似たようなメニューの例を教えてください。

4

3 に答える 3

1
package verticalmenubar;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Accordion;
import javafx.scene.control.Button;
import javafx.scene.control.TabPane;
import javafx.scene.control.TitledPane;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.Pane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

/**
 *
 * @author reegan
 */
public class VerticalMenuBar extends Application {
    public static TabPane tabPanel;
    @Override
    public void start(Stage primaryStage) {
        BorderPane root = buildView();
        Scene scene = new Scene(root, 300, 250);        
        primaryStage.setTitle("Hello World!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    BorderPane buildView() {
        BorderPane root = new BorderPane();
        tabPanel = new TabPane();
        root.setCenter(tabPanel);
        Accordion accordion = new Accordion();
        Pane pane = null;
        TitledPane tiledPane;
        General1Bar general1 = new General1Bar();
        pane= general1.getView();
        tiledPane = new TitledPane("General1", pane);
        accordion.getPanes().add(tiledPane);

        General2Bar general2 = new General2Bar();
        pane = general2.getView();
         tiledPane = new TitledPane("General2", pane);
        accordion.getPanes().add(tiledPane);

        General3Bar general3 = new General3Bar();
        pane = general3.getView();
        tiledPane = new TitledPane("General3", pane);
        accordion.getPanes().add(tiledPane);

        root.setLeft(accordion);
        return root;
    }



    public static void main(String[] args) {
        launch(args);
    }
}

class General1Bar {

    public Pane getView() {
        Pane p = new Pane();
        Button button = new Button("One");
        Button button1 = new Button("Two");
        VBox vBox = new VBox(5);
        vBox.getChildren().addAll(button,button1);
        p.getChildren().addAll(vBox);
        return p;
    }

}

class General2Bar {
     public Pane getView() {
        Pane p = new Pane();
        Button button = new Button("One");
        Button button1 = new Button("Two");
        VBox vBox = new VBox(5);
        vBox.getChildren().addAll(button,button1);
        p.getChildren().addAll(vBox);
        return p;
    }

}

class General3Bar {
    public Pane getView() {
        Pane p = new Pane();
        Button button = new Button("One");
        Button button1 = new Button("Two");
        VBox vBox = new VBox(5);
        vBox.getChildren().addAll(button,button1);
        p.getChildren().addAll(vBox);
        return p;
    }
}

私は新しくjavafxにいます。間違っている場合は、このコードを確認してください..

于 2013-08-20T05:29:32.463 に答える
0

javaFX Scene Builderでアコーディオン制御を試してみてください。以下はそのXMLコードです。

<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity"     minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
   <children>
  <Accordion layoutX="14.0" layoutY="32.0">
    <panes>
      <TitledPane animated="false" text="untitled 1">
        <content>
          <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
        </content>
      </TitledPane>
      <TitledPane animated="false" text="untitled 2">
        <content>
          <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
        </content>
      </TitledPane>
      <TitledPane animated="false" text="untitled 3">
        <content>
          <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
        </content>
      </TitledPane>
    </panes>
  </Accordion>
 </children>
</AnchorPane>
于 2015-07-03T11:43:33.950 に答える