java的JFX_Java JFXDrawer类代码示例

import com.jfoenix.controls.JFXDrawer; //导入依赖的package包/类

@Override

public void start(Stage stage) {

FlowPane content = new FlowPane();

JFXButton leftButton = new JFXButton(LEFT);

JFXButton topButton = new JFXButton(TOP);

JFXButton rightButton = new JFXButton(RIGHT);

JFXButton bottomButton = new JFXButton(BOTTOM);

content.getChildren().addAll(leftButton, topButton, rightButton, bottomButton);

content.setMaxSize(200, 200);

JFXDrawer leftDrawer = new JFXDrawer();

StackPane leftDrawerPane = new StackPane();

leftDrawerPane.getStyleClass().add("red-400");

leftDrawerPane.getChildren().add(new JFXButton("Left Content"));

leftDrawer.setSidePane(leftDrawerPane);

leftDrawer.setDefaultDrawerSize(150);

leftDrawer.setResizeContent(true);

leftDrawer.setOverLayVisible(false);

leftDrawer.setResizableOnDrag(true);

JFXDrawer bottomDrawer = new JFXDrawer();

StackPane bottomDrawerPane = new StackPane();

bottomDrawerPane.getStyleClass().add("deep-purple-400");

bottomDrawerPane.getChildren().add(new JFXButton("Bottom Content"));

bottomDrawer.setDefaultDrawerSize(150);

bottomDrawer.setDirection(DrawerDirection.BOTTOM);

bottomDrawer.setSidePane(bottomDrawerPane);

bottomDrawer.setResizeContent(true);

bottomDrawer.setOverLayVisible(false);

bottomDrawer.setResizableOnDrag(true);

JFXDrawer rightDrawer = new JFXDrawer();

StackPane rightDrawerPane = new StackPane();

rightDrawerPane.getStyleClass().add("blue-400");

rightDrawerPane.getChildren().add(new JFXButton("Right Content"));

rightDrawer.setDirection(DrawerDirection.RIGHT);

rightDrawer.setDefaultDrawerSize(150);

rightDrawer.setSidePane(rightDrawerPane);

rightDrawer.setOverLayVisible(false);

rightDrawer.setResizableOnDrag(true);

JFXDrawer topDrawer = new JFXDrawer();

StackPane topDrawerPane = new StackPane();

topDrawerPane.getStyleClass().add("green-400");

topDrawerPane.getChildren().add(new JFXButton("Top Content"));

topDrawer.setDirection(DrawerDirection.TOP);

topDrawer.setDefaultDrawerSize(150);

topDrawer.setSidePane(topDrawerPane);

topDrawer.setOverLayVisible(false);

topDrawer.setResizableOnDrag(true);

JFXDrawersStack drawersStack = new JFXDrawersStack();

drawersStack.setContent(content);

leftDrawer.setId(LEFT);

rightDrawer.setId(RIGHT);

bottomDrawer.setId(BOTTOM);

topDrawer.setId(TOP);

leftButton.addEventHandler(MOUSE_PRESSED, e -> drawersStack.toggle(leftDrawer));

bottomButton.addEventHandler(MOUSE_PRESSED, e -> drawersStack.toggle(bottomDrawer));

rightButton.addEventHandler(MOUSE_PRESSED, e -> drawersStack.toggle(rightDrawer));

topButton.addEventHandler(MOUSE_PRESSED, e -> drawersStack.toggle(topDrawer));

final Scene scene = new Scene(drawersStack, 800, 800);

final ObservableList stylesheets = scene.getStylesheets();

stylesheets.addAll(DrawerDemo.class.getResource("/css/jfoenix-components.css").toExternalForm(),

DrawerDemo.class.getResource("/css/jfoenix-design.css").toExternalForm());

stage.setTitle("JFX Drawer Demo");

stage.setScene(scene);

stage.setResizable(true);

stage.show();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DrawerLayout的封装,对于菜单是ListView的应用来说,这个库提供了更直接的使用方式,你不再需要去写menu的布局,如果你对DrawerLayout的使用没有信心,这个库使用起来可能会让你觉得简单些。项目地址:https://github.com/Arasthel/GoogleNavigationDrawerMenu效果图:如何使用方法1. 直接用java代码创建   1. 首先你需要创建个内容页的布局文件<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"                 xmlns:tools="http://schemas.android.com/tools"                 android:layout_width="match_parent"                 android:layout_height="match_parent"                 android:paddingLeft="@dimen/activity_horizontal_margin"                 android:paddingRight="@dimen/activity_horizontal_margin"                 android:paddingTop="@dimen/activity_vertical_margin"                 android:paddingBottom="@dimen/activity_vertical_margin"                 tools:context="com.dexafree.googlenavigationdrawermenusample.MainActivity">         <TextView                 android:text="Hello world!"                 android:layout_width="wrap_content"                 android:layout_height="wrap_content" /> </RelativeLayout>   2. 创建菜单实例  mDrawer = new GoogleNavigationDrawer(this);   mDrawer.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));      3. 创建菜单项  mDrawer.setListViewSections(new String[]{"Section A", "Section B", "Section C"}, // Main sections         new String[]{"Settings01", "Settings02"}, // Secondary sections         new int[]{R.drawable.ic_launcher}, // Main sections icon ids         null);   4. 设置内容页LayoutInflater inflater = getLayoutInflater(); View contentView = inflater.inflate(R.layout.main_content, null); mDrawer.addView(contentView, 0);  5. 设置选择监听器mDrawer.setOnNavigationSectionSelected(new GoogleNavigationDrawer.OnNavigationSectionSelected() {     @Override     public void onSectionSelected(View v, int i, long l) {           Toast.makeText(getBaseContext(), "Selected section: " i, Toast.LENGTH_SHORT).show();      } });   6. 最后将菜单附加到页面上setContentView(mDrawer);  方法2. 在xml中创建菜单实例及内容页<org.arasthel.googlenavdrawermenu.views.GoogleNavigationDrawer xmlns:android="http://schemas.android.com/apk/res/android"xmlns:drawer="http://schemas.android.com/apk/res-auto"android:id="@ id/navigation_drawer_container"android:layout_width="match_parent"android:layout_height="match_parent"drawer:list_paddingTop="?android:actionBarSize"drawer:drawer_gravity="start"drawer:list_mainSectionsEntries="@array/navigation_main_sections"drawer:list_secondarySectionsEntries="@array/navigation_secondary_sections"drawer:list_mainSectionsDrawables="@array/drawable_ids"drawer:list_secondarySectionsDrawables="@array/drawable_ids">   <FrameLayout       android:id="@ id/content_layout"       android:layout_width="match_parent"       android:layout_height="match_parent"/> </org.arasthel.googlenavdrawermenu.views.GoogleNavigationDrawer>  接下来就按照方法1的步骤3、步骤5.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值