下面列出了怎么用javafx.scene.control.ToggleGroup的API类实例代码及写法,或者点击链接到github查看源代码。
private VBox addFilter() {
filterText.setPromptText("Filter transaction types");
final ToggleGroup toggleGroup = new ToggleGroup();
startsWithRb.setToggleGroup(toggleGroup);
startsWithRb.setPadding(new Insets(0, 0, 0, 5));
startsWithRb.setSelected(true);
final RadioButton containsRadioButton = new RadioButton("Contains");
containsRadioButton.setToggleGroup(toggleGroup);
containsRadioButton.setPadding(new Insets(0, 0, 0, 5));
toggleGroup.selectedToggleProperty().addListener((observable, oldValue, newValue) -> {
populateTree();
});
filterText.textProperty().addListener((observable, oldValue, newValue) -> {
populateTree();
});
final HBox headerBox = new HBox(new Label("Filter: "), filterText, startsWithRb, containsRadioButton);
headerBox.setAlignment(Pos.CENTER_LEFT);
headerBox.setPadding(new Insets(5));
final VBox box = new VBox(schemaLabel, headerBox, treeView);
VBox.setVgrow(treeView, Priority.ALWAYS);
return box;
}
private void initialiseVersionSelection() {
ToggleGroup xpathVersionToggleGroup = new ToggleGroup();
List<String> versionItems = new ArrayList<>();
versionItems.add(XPathRuleQuery.XPATH_1_0);
versionItems.add(XPathRuleQuery.XPATH_1_0_COMPATIBILITY);
versionItems.add(XPathRuleQuery.XPATH_2_0);
versionItems.forEach(v -> {
RadioMenuItem item = new RadioMenuItem("XPath " + v);
item.setUserData(v);
item.setToggleGroup(xpathVersionToggleGroup);
xpathVersionMenuButton.getItems().add(item);
});
xpathVersionUIProperty = DesignerUtil.mapToggleGroupToUserData(xpathVersionToggleGroup, DesignerUtil::defaultXPathVersion);
xpathVersionProperty().setValue(XPathRuleQuery.XPATH_2_0);
}
private RadioButton createRadioButton(final Node rect, String name, final boolean toFront, ToggleGroup tg) {
final RadioButton radioButton = new RadioButton(name);
radioButton.setToggleGroup(tg);
radioButton.selectedProperty().addListener(new InvalidationListener() {
public void invalidated(Observable ov) {
if (radioButton.isSelected()) {
if (toFront) {
rect.toFront();
} else {
rect.toBack();
}
}
}
});
return radioButton;
}
public final ObjectProperty<ToggleGroup> toggleGroupProperty() {
if (null == toggleGroup) {
toggleGroup = new ObjectPropertyBase<ToggleGroup>() {
private ToggleGroup oldToggleGroup;
@Override protected void invalidated() {
final ToggleGroup toggleGroup = get();
if (null != toggleGroup && !toggleGroup.getToggles().contains(OnOffSwitch.this)) {
if (oldToggleGroup != null) {
oldToggleGroup.getToggles().remove(OnOffSwitch.this);
}
toggleGroup.getToggles().add(OnOffSwitch.this);
} else if (null == toggleGroup) {
oldToggleGroup.getToggles().remove(OnOffSwitch.this);
}
oldToggleGroup = toggleGroup;
}
@Override public Object getBean() { return OnOffSwitch.this; }
@Override public String getName() { return "toggleGroup"; }
};
}
return toggleGroup;
}
private RadioButton createRadioButton(final Node rect, String name, final boolean toFront, ToggleGroup tg) {
final RadioButton radioButton = new RadioButton(name);
radioButton.setToggleGroup(tg);
radioButton.selectedProperty().addListener(new InvalidationListener() {
public void invalidated(Observable ov) {
if (radioButton.isSelected()) {
if (toFront) {
rect.toFront();
} else {
rect.toBack();
}
}
}
});
return radioButton;
}
public RadioButtons() {
super(400,100);
ToggleGroup tg = new ToggleGroup();
VBox vbox = new VBox();
vbox.setSpacing(5);
RadioButton rb1 = new RadioButton("Hello");
rb1.setToggleGroup(tg);
RadioButton rb2 = new RadioButton("Bye");
rb2.setToggleGroup(tg);
rb2.setSelected(true);
RadioButton rb3 = new RadioButton("Disabled");
rb3.setToggleGroup(tg);
rb3.setSelected(false);
rb3.setDisable(true);
vbox.getChildren().add(rb1);
vbox.getChildren().add(rb2);
vbox.getChildren().add(rb3);
getChildren().add(vbox);
}
public void bind(final ToggleGroup toggleGroup, final String propertyName) {
try {
String value = props.getProperty(propertyName);
if (value != null) {
int selectedToggleIndex = Integer.parseInt(value);
toggleGroup.selectToggle(toggleGroup.getToggles().get(selectedToggleIndex));
}
} catch (Exception ignored) {
}
toggleGroup.selectedToggleProperty().addListener(new InvalidationListener() {
@Override
public void invalidated(Observable o) {
if (toggleGroup.getSelectedToggle() == null) {
props.remove(propertyName);
} else {
props.setProperty(propertyName, Integer.toString(toggleGroup.getToggles().indexOf(toggleGroup.getSelectedToggle())));
}
}
});
}
/** @param infos Info from {@link ScanInfoModel} */
private void updateScans(final List<ScanInfo> infos)
{
final ToggleGroup group = new ToggleGroup();
final List<MenuItem> names = new ArrayList<>(infos.size());
final ScanDataReader safe_reader = reader;
final long scan_id = safe_reader != null ? safe_reader.getScanId() : -1;
for (ScanInfo info : infos)
{
final String label = MessageFormat.format(Messages.scan_name_id_fmt, info.getName(), info.getId());
final RadioMenuItem item = new RadioMenuItem(label);
item.setToggleGroup(group);
if (scan_id == info.getId())
item.setSelected(true);
item.setOnAction(event -> selectScan(info.getId(), label));
names.add(item);
}
Platform.runLater(() -> scan_selector.getItems().setAll(names));
}
/**
* Initializes the list of zoom options.
*/
private void initializeZoomOptions() {
final ToggleGroup toggleGroup = new ToggleGroup();
for (int i = 1; i <= 5; i++) {
final RadioMenuItem zoomOption = new RadioMenuItem();
final double zoomFactor = i;
zoomOption.setText(i + "00%");
zoomOption.setOnAction(event -> setZoomFactor(zoomFactor));
toggleGroup.getToggles().add(zoomOption);
zoomOptions.getItems().add(zoomOption);
if (i == 1) {
zoomOption.setSelected(true);
}
}
}
private SecretValue getSecretValue(ToggleGroup valueSource, String value, String generated, File file) {
Toggle current = valueSource.getSelectedToggle();
String secretString;
if (current.getUserData().equals("value")) {
secretString = value;
} else if (current.getUserData().equals("generated")) {
Integer numBytesToGenerate = Integer.valueOf(generated);
// TODO: store as plain bytes?
byte[] random = Singleton.randomGenerator.generateRandom(numBytesToGenerate);
secretString = Base64.encodeAsString(random);
} else {
String path = null;
try {
path = file.getCanonicalPath();
return SecretValueConverter.inferEncoding(Files.readAllBytes(Paths.get(path)), SecretType.OPAQUE);
} catch (IOException e) {
throw new RuntimeException("Failed to read secret from file");
}
}
return new SecretValue(secretString, SecretType.OPAQUE);
}
/**
* 初始化选择项
*/
private void initItems(){
// 左边的选择项
ObservableList<Node> items = boxItems.getChildren();
ToggleGroup group = new ToggleGroup();
// 关联group和index
for(int index=0; index<items.size(); ++index){
ToggleButton item = (ToggleButton) items.get(index);
item.setToggleGroup(group);
item.setUserData(index);
}
// 切换监听
group.selectedToggleProperty().addListener((observable, oldValue, newValue) ->{
if(newValue != null){
Integer itemIndex = (Integer) newValue.getUserData();
showSettingContent(itemIndex);
}else{
group.selectToggle(oldValue);
}
});
// 默认选择第一个
group.getToggles().get(0).setSelected(true);
}
@Override public void init() {
onOffSwitch = new OnOffSwitch();
ToggleGroup iconSwitchToggleGroup = new ToggleGroup();
iconSwitchSymbol = new IconSwitch();
iconSwitchSymbol.setToggleGroup(iconSwitchToggleGroup);
iconSwitchSymbol.setSelected(true);
iconSwitchSymbol.setSymbolType(SymbolType.POWER);
iconSwitchSymbol.setSymbolColor(Color.web("#34495e"));
iconSwitchText = new IconSwitch();
iconSwitchText.setToggleGroup(iconSwitchToggleGroup);
iconSwitchText.setText("A");
iconSwitchText.setSymbolColor(Color.web("#34495e"));
iconSwitchSymbol1 = new IconSwitch();
iconSwitchSymbol1.setSymbolType(SymbolType.ALARM);
iconSwitchSymbol1.setSymbolColor(Color.web("#34495e"));
onOffSwitch.setOnSelect(switchEvent -> System.out.println("OnOff Switch switched on"));
iconSwitchSymbol.setOnSelect(switchEvent -> System.out.println("Icon Switch Symbol switched on"));
iconSwitchText.setOnSelect(switchEvent -> System.out.println("Icon Switch Text switched on"));
iconSwitchSymbol1.setOnSelect(switchEvent -> System.out.println("Icon Switch Symbol 1 switched on"));
}
/**
* Ensures, that always a button is selected:
* - if because of an invalidation of the input list the selection is lost, the selection is reapplied
* - if no button is selected, select the first button
*/
private void selectFirstToggleButton() {
final ToggleGroup toggleGroup = getSkin().getToggleGroup();
if (toggleGroup.getSelectedToggle() == null && !toggleGroup.getToggles().isEmpty()) {
final E selectedElement = getControl().selectedElementProperty().getValue();
if (selectedElement != null && getControl().getElements().contains(selectedElement)) {
// 1 if an "all" button exists, 0 otherwise
final int offset = toggleGroup.getToggles().size() - getControl().getElements().size();
final int index = getControl().getElements().indexOf(getControl().selectedElementProperty().getValue());
// reselect the previously selected item
toggleGroup.selectToggle(toggleGroup.getToggles().get(offset + index));
} else {
final Toggle firstToggle = toggleGroup.getToggles().get(0);
// trigger the first item in the toggle group
if (firstToggle instanceof ToggleButton) {
((ToggleButton) firstToggle).fire();
}
}
}
}
/**
* {@inheritDoc}
*/
@Override
public void initialise() {
ToggleGroup toggleGroup = new ToggleGroup();
this.iconsListButton = new ToggleButton();
this.iconsListButton.setToggleGroup(toggleGroup);
this.iconsListButton.getStyleClass().addAll("listIcon", "iconsList");
this.compactListButton = new ToggleButton();
this.compactListButton.setToggleGroup(toggleGroup);
this.compactListButton.getStyleClass().addAll("listIcon", "compactList");
this.detailsListButton = new ToggleButton();
this.detailsListButton.setToggleGroup(toggleGroup);
this.detailsListButton.getStyleClass().addAll("listIcon", "detailsList");
HBox container = new HBox(iconsListButton, compactListButton, detailsListButton);
container.getStyleClass().add("listChooser");
getChildren().addAll(container);
}
public void bind(final ToggleGroup toggleGroup, final String propertyName) {
try {
String value = props.getProperty(propertyName);
if (value != null) {
int selectedToggleIndex = Integer.parseInt(value);
toggleGroup.selectToggle(toggleGroup.getToggles().get(selectedToggleIndex));
}
} catch (Exception ignored) {
}
toggleGroup.selectedToggleProperty().addListener(o -> {
if (toggleGroup.getSelectedToggle() == null) {
props.remove(propertyName);
} else {
props.setProperty(propertyName, Integer.toString(toggleGroup.getToggles().indexOf(toggleGroup.getSelectedToggle())));
}
});
}
public final ObjectProperty<ToggleGroup> toggleGroupProperty() {
if (null == toggleGroup) {
toggleGroup = new ObjectPropertyBase<ToggleGroup>() {
private ToggleGroup oldToggleGroup;
@Override protected void invalidated() {
final ToggleGroup toggleGroup = get();
if (null != toggleGroup && !toggleGroup.getToggles().contains(IconSwitch.this)) {
if (oldToggleGroup != null) {
oldToggleGroup.getToggles().remove(IconSwitch.this);
}
toggleGroup.getToggles().add(IconSwitch.this);
} else if (null == toggleGroup) {
oldToggleGroup.getToggles().remove(IconSwitch.this);
}
oldToggleGroup = toggleGroup;
}
@Override public Object getBean() { return IconSwitch.this; }
@Override public String getName() { return "toggleGroup"; }
};
}
return toggleGroup;
}
@Override
public void initialize() {
listener = viewPath -> {
if (viewPath.size() != 4 || viewPath.indexOf(BurnBsqView.class) != 2)
return;
selectedViewClass = viewPath.tip();
loadView(selectedViewClass);
};
toggleGroup = new ToggleGroup();
final List<Class<? extends View>> baseNavPath = Arrays.asList(MainView.class, DaoView.class, BurnBsqView.class);
assetFee = new MenuItem(navigation, toggleGroup, Res.get("dao.burnBsq.menuItem.assetFee"),
AssetFeeView.class, baseNavPath);
proofOfBurn = new MenuItem(navigation, toggleGroup, Res.get("dao.burnBsq.menuItem.proofOfBurn"),
ProofOfBurnView.class, baseNavPath);
leftVBox.getChildren().addAll(assetFee, proofOfBurn);
}
@Override
public void initialize() {
listener = viewPath -> {
if (viewPath.size() != 4 || viewPath.indexOf(EconomyView.class) != 2)
return;
selectedViewClass = viewPath.tip();
loadView(selectedViewClass);
};
toggleGroup = new ToggleGroup();
List<Class<? extends View>> baseNavPath = Arrays.asList(MainView.class, DaoView.class, EconomyView.class);
dashboard = new MenuItem(navigation, toggleGroup, Res.get("shared.dashboard"), BsqDashboardView.class, baseNavPath);
supply = new MenuItem(navigation, toggleGroup, Res.get("dao.factsAndFigures.menuItem.supply"), SupplyView.class, baseNavPath);
transactions = new MenuItem(navigation, toggleGroup, Res.get("dao.factsAndFigures.menuItem.transactions"), BSQTransactionsView.class, baseNavPath);
leftVBox.getChildren().addAll(dashboard, supply, transactions);
if (!DevEnv.isDaoActivated()) {
dashboard.setDisable(true);
supply.setDisable(true);
transactions.setDisable(true);
}
}
@Override
public void initialize() {
listener = viewPath -> {
if (viewPath.size() != 4 || viewPath.indexOf(BsqWalletView.class) != 2)
return;
selectedViewClass = viewPath.tip();
loadView(selectedViewClass);
};
toggleGroup = new ToggleGroup();
List<Class<? extends View>> baseNavPath = Arrays.asList(MainView.class, DaoView.class, BsqWalletView.class);
send = new MenuItem(navigation, toggleGroup, Res.get("dao.wallet.menuItem.send"), BsqSendView.class, baseNavPath);
receive = new MenuItem(navigation, toggleGroup, Res.get("dao.wallet.menuItem.receive"), BsqReceiveView.class, baseNavPath);
transactions = new MenuItem(navigation, toggleGroup, Res.get("dao.wallet.menuItem.transactions"), BsqTxView.class, baseNavPath);
leftVBox.getChildren().addAll(send, receive, transactions);
if (!DevEnv.isDaoActivated()) {
send.setDisable(true);
transactions.setDisable(true);
}
}
@Override
public void initialize() {
navigationListener = viewPath -> {
if (viewPath.size() != 4 || viewPath.indexOf(MonitorView.class) != 2)
return;
selectedViewClass = viewPath.tip();
loadView(selectedViewClass);
};
toggleGroup = new ToggleGroup();
List<Class<? extends View>> baseNavPath = Arrays.asList(MainView.class, DaoView.class, MonitorView.class);
daoState = new MenuItem(navigation, toggleGroup, Res.get("dao.monitor.daoState"),
DaoStateMonitorView.class, baseNavPath);
proposals = new MenuItem(navigation, toggleGroup, Res.get("dao.monitor.proposals"),
ProposalStateMonitorView.class, baseNavPath);
blindVotes = new MenuItem(navigation, toggleGroup, Res.get("dao.monitor.blindVotes"),
BlindVoteStateMonitorView.class, baseNavPath);
leftVBox.getChildren().addAll(daoState, proposals, blindVotes);
}
@Override
public void setContent(final Tab tab) {
GraphManager.getDefault().addGraphManagerListener(this);
newActiveGraph(GraphManager.getDefault().getActiveGraph());
final TextField filterText = new TextField();
filterText.setPromptText("Filter attribute names");
final ToggleGroup tg = new ToggleGroup();
final RadioButton startsWithRb = new RadioButton("Starts with");
startsWithRb.setToggleGroup(tg);
startsWithRb.setPadding(new Insets(0, 0, 0, 5));
startsWithRb.setSelected(true);
final RadioButton containsRb = new RadioButton("Contains");
containsRb.setToggleGroup(tg);
containsRb.setPadding(new Insets(0, 0, 0, 5));
tg.selectedToggleProperty().addListener((ov, oldValue, newValue) -> {
filter(table, filterText.getText(), startsWithRb.isSelected());
});
filterText.textProperty().addListener((ov, oldValue, newValue) -> {
filter(table, newValue, startsWithRb.isSelected());
});
final HBox headerBox = new HBox(new Label("Filter: "), filterText, startsWithRb, containsRb);
headerBox.setAlignment(Pos.CENTER_LEFT);
headerBox.setPadding(new Insets(5));
final VBox box = new VBox(schemaLabel, headerBox, table);
VBox.setVgrow(table, Priority.ALWAYS);
Platform.runLater(() -> {
tab.setContent(box);
});
}
/**
*
* @param period A Period containing either months or days.
*
* @param group
*/
public TimeRangeToggleButton(final Period period, final ToggleGroup group, final EventHandler<ActionEvent> toggleHandler) {
this.period = period;
final String label = String.valueOf(period.getMonths() != 0 ? period.getMonths() : period.getDays());
setText(label);
setToggleGroup(group);
getStyleClass().add("time-range-toggle");
setOnAction(event -> {
toggleHandler.handle(event);
});
}
/**
* Given a toggle group whose toggles all have user data of type T,
* maps the selected toggle property to a Var<T>
*/
@SuppressWarnings("unchecked")
public static <T> Var<T> mapToggleGroupToUserData(ToggleGroup toggleGroup, Supplier<T> defaultValue) {
return Var.fromVal(toggleGroup.selectedToggleProperty(), toggleGroup::selectToggle)
.mapBidirectional(
item -> (T) item.getUserData(),
t -> selectFirst(
() -> findToggleWithUserData(toggleGroup, t),
() -> findToggleWithUserData(toggleGroup, defaultValue.get())
)
.orElseThrow(() -> new IllegalStateException("Unknown toggle " + t))
);
}
@Override public ObjectProperty<ToggleGroup> toggleGroupProperty() {
if (null == toggleGroup) {
toggleGroup = new ObjectPropertyBase<>() {
private ToggleGroup old;
private ChangeListener<Toggle> listener = (o, oV, nV) -> {
//getImpl_traversalEngine().setOverriddenFocusTraversability(nV != null ? isSelected() : null);
};
@Override protected void invalidated() {
final ToggleGroup tg = get();
if (tg != null && !tg.getToggles().contains(InitialDigit.this)) {
if (old != null) {
old.getToggles().remove(InitialDigit.this);
}
tg.getToggles().add(InitialDigit.this);
tg.selectedToggleProperty().addListener(listener);
} else if (tg == null) {
old.selectedToggleProperty().removeListener(listener);
old.getToggles().remove(InitialDigit.this);
}
old = tg;
}
@Override public Object getBean() { return InitialDigit.this; }
@Override public String getName() { return "toggleGroup"; }
};
}
return toggleGroup;
}
@Override
public Node getRoot(RequestContainer request, Templater templater) {
this.request = request;
textArea = new TextArea();
textArea.setEditable(false);
HBox osSelection = new HBox();
ToggleGroup group = new ToggleGroup();
RadioButton windowsTgl = new RadioButton("Windows");
windowsTgl.setToggleGroup(group);
windowsTgl.setSelected(isWindows);
RadioButton unixTgl = new RadioButton("Unix");
unixTgl.setSelected(!isWindows);
unixTgl.setToggleGroup(group);
windowsTgl.selectedProperty().addListener((obs, o, n) -> {
if (n != null) {
isWindows = n;
refreshCommand(templater);
}
});
osSelection.getChildren().add(windowsTgl);
osSelection.getChildren().add(unixTgl);
VBox root = new VBox();
root.getChildren().add(osSelection);
root.getChildren().add(textArea);
VBox.setVgrow(textArea, Priority.ALWAYS);
refreshCommand(templater);
return root;
}
/**
* {@inheritDoc}
*/
@Override
public void initializeParts() {
super.initializeParts();
node = new VBox();
node.getStyleClass().add("simple-radio-control");
toggleGroup = new ToggleGroup();
createRadioButtons();
}
public static boolean setRadioSelected(ToggleGroup group, String text) {
if (group == null || text == null) {
return false;
}
ObservableList<Toggle> buttons = group.getToggles();
for (Toggle button : buttons) {
RadioButton radioButton = (RadioButton) button;
if (text.equals(radioButton.getText())) {
button.setSelected(true);
return true;
}
}
return false;
}
private HBox createRadioButtons() {
//creates a radio buttons, for each rectangle 2 buttons with action .toFront() and toBack()
ToggleGroup tg = new ToggleGroup();
VBox vBox1 = new VBox();
vBox1.setSpacing(5);
vBox1.setLayoutY(6);
vBox1.getChildren().addAll(
createRadioButton(rectA, "A.toFront()", true, tg),
createRadioButton(rectB, "B.toFront()", true, tg),
createRadioButton(rectC, "C.toFront()", true, tg)
);
VBox vBox2 = new VBox();
vBox2.setSpacing(5);
vBox2.setLayoutY(6);
vBox2.getChildren().addAll(
createRadioButton(rectA, "A.toBack()", false, tg),
createRadioButton(rectB, "B.toBack()", false, tg),
createRadioButton(rectC, "C.toBack()", false, tg)
);
HBox hBox = new HBox();
hBox.setSpacing(10);
hBox.getChildren().addAll(vBox1, vBox2);
return hBox;
}
public static RadioButton addRadioButton(GridPane gridPane, int rowIndex, ToggleGroup toggleGroup, String title) {
RadioButton radioButton = new AutoTooltipRadioButton(title);
radioButton.setToggleGroup(toggleGroup);
GridPane.setRowIndex(radioButton, rowIndex);
gridPane.getChildren().add(radioButton);
return radioButton;
}
private HBox createRadioButtons() {
//creates a radio buttons, for each rectangle 2 buttons with action .toFront() and toBack()
ToggleGroup tg = new ToggleGroup();
VBox vBox1 = new VBox();
vBox1.setSpacing(5);
vBox1.setLayoutY(6);
vBox1.getChildren().addAll(
createRadioButton(rectA, "A.toFront()", true, tg),
createRadioButton(rectB, "B.toFront()", true, tg),
createRadioButton(rectC, "C.toFront()", true, tg)
);
VBox vBox2 = new VBox();
vBox2.setSpacing(5);
vBox2.setLayoutY(6);
vBox2.getChildren().addAll(
createRadioButton(rectA, "A.toBack()", false, tg),
createRadioButton(rectB, "B.toBack()", false, tg),
createRadioButton(rectC, "C.toBack()", false, tg)
);
HBox hBox = new HBox();
hBox.setSpacing(10);
hBox.getChildren().addAll(vBox1, vBox2);
return hBox;
}