按鈕點擊事件代碼如下,一共有三個按鈕
if(buttonA.getStyleClass().indexOf("button-unselected2") != -1) {
buttonA.getStyleClass().remove(buttonA.getStyleClass().indexOf("button-unselected2"));
}
buttonA.getStyleClass().add("button-selected2");
if(buttonB.getStyleClass().indexOf("button-selected2") != -1) {
buttonB.getStyleClass().remove(buttonB.getStyleClass().indexOf("button-selected2"));
buttonB.getStyleClass().add("button-unselected2");
}
if(buttonC.getStyleClass().indexOf("button-selected2") != -1) {
buttonC.getStyleClass().remove(buttonC.getStyleClass().indexOf("button-selected2"));
buttonC.getStyleClass().add("button-unselected2");
}
最開始直接用add對三個按鈕添加對應樣式,但是多點擊幾次后,就會出現所有按鈕都變成button-unselected2的樣式。。。。
后面試著先remove在add,也是會這樣,后面輸出了下getStyleClass()發現3-4次左右,就會出現
button button-unselected2 button-unselected2 button-selected2
這種情況
uj5u.com熱心網友回復:
目前的話把第一個if換成while解決了,但感覺這并不是正常的方法。。。。uj5u.com熱心網友回復:
java 不是有單選按鍵么!
JRadioButton理解一下
uj5u.com熱心網友回復:
我知道有radiobutton,但是這個前面的圈不能去掉太丑了。。。
uj5u.com熱心網友回復:
樓主你要的是 ToggleButton 和 ToggleGroup,下面是例子,除此之外樓主最好另外找文章熟悉下。import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.ToggleButton;
import javafx.scene.control.ToggleGroup;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;
public class StyleButtonDemo extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setScene(new Scene(root()));
primaryStage.show();
}
private HBox root() {
HBox hBox = new HBox();
hBox.setPadding(new Insets(50));
hBox.setSpacing(10);
ToggleGroup group = new ToggleGroup();
for (int i = 0; i < 5; i++) {
ToggleButton button = new ToggleButton("button" + i);
button.setToggleGroup(group);
hBox.getChildren().add(button);
}
group.selectedToggleProperty().addListener((observable, oldValue, newValue) -> {
if (newValue instanceof ToggleButton) {
System.out.println("你選擇了 " + ((ToggleButton) newValue).getText());
}
});
return hBox;
}
}
uj5u.com熱心網友回復:
樓主你要的是 ToggleButton 和 ToggleGroup,下面是例子,除此之外樓主最好另外找文章熟悉下。
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.ToggleButton;
import javafx.scene.control.ToggleGroup;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;
public class StyleButtonDemo extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setScene(new Scene(root()));
primaryStage.show();
}
private HBox root() {
HBox hBox = new HBox();
hBox.setPadding(new Insets(50));
hBox.setSpacing(10);
ToggleGroup group = new ToggleGroup();
for (int i = 0; i < 5; i++) {
ToggleButton button = new ToggleButton("button" + i);
button.setToggleGroup(group);
hBox.getChildren().add(button);
}
group.selectedToggleProperty().addListener((observable, oldValue, newValue) -> {
if (newValue instanceof ToggleButton) {
System.out.println("你選擇了 " + ((ToggleButton) newValue).getText());
}
});
return hBox;
}
}
后面看官方檔案時找到了,但是我想實作的效果是用RadioButton的功能做出ToggleButton這種效果,就是單選按鈕但是沒有RadioButton前面那個選中的點。。。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/70511.html
標籤:Java SE
