Skip to content

Commit

Permalink
feat: support menubar (#12)
Browse files Browse the repository at this point in the history
Co-authored-by: liang.tang.yk <liang.tang.yk@bp.renesas.com>
  • Loading branch information
unknowIfGuestInDream and liang.tang.yk committed Oct 19, 2022
1 parent 614494e commit d465f76
Show file tree
Hide file tree
Showing 6 changed files with 602 additions and 536 deletions.
75 changes: 75 additions & 0 deletions demo/src/main/java/com/tlcsdm/demo/FXMenubarConfigration.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
package com.tlcsdm.demo;

import com.tlcsdm.frame.MenubarConfigration;

import javafx.scene.control.CheckMenuItem;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.control.MenuItem;
import javafx.scene.control.RadioMenuItem;
import javafx.scene.control.SeparatorMenuItem;
import javafx.scene.control.ToggleGroup;

public class FXMenubarConfigration implements MenubarConfigration {

@Override
public MenuBar setMenuBar(MenuBar menuBar) {
Menu menu1 = new Menu("menu1");
Menu menu2 = new Menu("menu2");
Menu menu3 = new Menu("menu3");
menuBar.getMenus().addAll(menu1, menu2, menu3);
MenuItem item1 = new MenuItem("item1");
MenuItem item2 = new MenuItem("item2");

MenuItem item3 = new MenuItem("item3");
// 分割符(一条线)
SeparatorMenuItem separatorMenuItem = new SeparatorMenuItem();
// 子菜单
Menu menu4 = new Menu("menu4");
MenuItem item5 = new MenuItem("MenuItem5");
MenuItem item6 = new MenuItem("MenuItem6");
menu4.getItems().addAll(item5, item6);

menu1.getItems().addAll(item1, item2, separatorMenuItem, menu4, item3);
// 菜单栏单选
ToggleGroup tg = new ToggleGroup(); // 组
RadioMenuItem radioMenuItem1 = new RadioMenuItem("RadioMenuItem1");
RadioMenuItem radioMenuItem2 = new RadioMenuItem("RadioMenuItem2");
RadioMenuItem radioMenuItem3 = new RadioMenuItem("RadioMenuItem3");
radioMenuItem1.setToggleGroup(tg);
radioMenuItem2.setToggleGroup(tg);
radioMenuItem3.setToggleGroup(tg);
menu2.getItems().addAll(radioMenuItem1, radioMenuItem2, radioMenuItem3);

radioMenuItem3.setSelected(true); // 设置默认为选中状态

// 绑定单击事件
radioMenuItem1.setOnAction(event -> {
RadioMenuItem source = (RadioMenuItem) event.getSource();// 获得事件源
System.out.println(source.isSelected()); // 判断是否被选中
// 或者直接点
System.out.println(radioMenuItem1.isSelected());

});

// 菜单栏多选
CheckMenuItem checkMenuItem1 = new CheckMenuItem("checkMenuItem1");
CheckMenuItem checkMenuItem2 = new CheckMenuItem("checkMenuItem2");
CheckMenuItem checkMenuItem3 = new CheckMenuItem("checkMenuItem3");
menu3.getItems().addAll(checkMenuItem1, checkMenuItem2, checkMenuItem3);

checkMenuItem2.setSelected(true); // 设置默认选中
checkMenuItem3.setSelected(true);

// 绑定单击事件
checkMenuItem1.setOnAction(event -> {
CheckMenuItem source = (CheckMenuItem) event.getSource();// 获得事件源
System.out.println(source.isSelected()); // 判断是否被选中
// 或者直接点
System.out.println(checkMenuItem1.isSelected());
});

return menuBar;
}

}
41 changes: 21 additions & 20 deletions demo/src/main/java/module-info.java
Original file line number Diff line number Diff line change
@@ -1,26 +1,27 @@
module com.tlcsdm.demo {

requires java.desktop;
requires org.controlsfx.controls;
requires com.tlcsdm.frame;
requires java.desktop;
requires org.controlsfx.controls;
requires com.tlcsdm.frame;

exports com.tlcsdm.demo.samples to javafx.graphics;
exports com.tlcsdm.demo.samples.actions to com.tlcsdm.frame;
exports com.tlcsdm.demo.samples.button to com.tlcsdm.frame;
exports com.tlcsdm.demo.samples.checked to com.tlcsdm.frame;
exports com.tlcsdm.demo.samples.dialogs to com.tlcsdm.frame;
exports com.tlcsdm.demo.samples.propertysheet to com.tlcsdm.frame;
exports com.tlcsdm.demo.samples.tablefilter to com.tlcsdm.frame;
exports com.tlcsdm.demo.samples.tableview to com.tlcsdm.frame;
exports com.tlcsdm.demo.samples.tableview2 to com.tlcsdm.frame;
exports com.tlcsdm.demo.samples.textfields to com.tlcsdm.frame;
exports com.tlcsdm.demo.samples.spreadsheet to com.tlcsdm.frame;
exports com.tlcsdm.demo.samples to javafx.graphics;
exports com.tlcsdm.demo.samples.actions to com.tlcsdm.frame;
exports com.tlcsdm.demo.samples.button to com.tlcsdm.frame;
exports com.tlcsdm.demo.samples.checked to com.tlcsdm.frame;
exports com.tlcsdm.demo.samples.dialogs to com.tlcsdm.frame;
exports com.tlcsdm.demo.samples.propertysheet to com.tlcsdm.frame;
exports com.tlcsdm.demo.samples.tablefilter to com.tlcsdm.frame;
exports com.tlcsdm.demo.samples.tableview to com.tlcsdm.frame;
exports com.tlcsdm.demo.samples.tableview2 to com.tlcsdm.frame;
exports com.tlcsdm.demo.samples.textfields to com.tlcsdm.frame;
exports com.tlcsdm.demo.samples.spreadsheet to com.tlcsdm.frame;

opens com.tlcsdm.demo.samples;
opens com.tlcsdm.demo.samples.dialogs;
opens com.tlcsdm.demo.samples.actions to org.controlsfx.controls;
opens com.tlcsdm.demo.samples.tableview to javafx.base;
opens com.tlcsdm.demo.samples.spreadsheet to javafx.graphics;
opens com.tlcsdm.demo.samples;
opens com.tlcsdm.demo.samples.dialogs;
opens com.tlcsdm.demo.samples.actions to org.controlsfx.controls;
opens com.tlcsdm.demo.samples.tableview to javafx.base;
opens com.tlcsdm.demo.samples.spreadsheet to javafx.graphics;

provides com.tlcsdm.frame.FXSamplerProject with com.tlcsdm.demo.ControlsFXSamplerProject;
provides com.tlcsdm.frame.FXSamplerProject with com.tlcsdm.demo.ControlsFXSamplerProject;
provides com.tlcsdm.frame.MenubarConfigration with com.tlcsdm.demo.FXMenubarConfigration;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
com.tlcsdm.demo.FXMenubarConfigration
Loading

0 comments on commit d465f76

Please sign in to comment.