如何从javafx中的切换按钮获取文本

时间:2019-01-09 04:09:25

标签: java javafx

我是JavaFX的新手。我正在从事电影预订项目。我尝试在循环后从切换按钮中检索文本,但没有看到getText()方法。有没有办法从切换按钮获取文本。

这是我的代码:

package theatre;

import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.GridPane;

import java.net.URL;
import java.util.ResourceBundle;

public class TheatreController implements Initializable {

@FXML
private GridPane middleGridPane;

private final int MAX_ROW = 5;
private final int MAX_COL = 5;

@Override
public void initialize(URL url, ResourceBundle resourceBundle) {
    int countRow = 1;
    ToggleButton[][] seats = new ToggleButton[MAX_ROW][MAX_COL];

    char lastRow = 'A' + (MAX_ROW - 1);

    for(char row = 'A'; row < lastRow; row++){
        for (int col = 1; col < MAX_COL; col++){
            seats[countRow][col] = new ToggleButton(String.format(row + "%02d", col));
            seats[countRow][col].setPrefWidth(50);
            middleGridPane.add(seats[countRow][col], countRow, col);
            seats[countRow][col].setOnAction(new EventHandler<ActionEvent>() {
                @Override
                public void handle(ActionEvent event) {
                    // Can't get text from here
                    event.getEventType().getName();
                }
            });

        }
        countRow++;
    }
}

@FXML
public void bookSeat(){

}
}

3 个答案:

答案 0 :(得分:1)

handle()的{​​{1}}中使用的任何变量都必须为EventHandlereffectively finel

以下是您解决问题的方法:

final

答案 1 :(得分:0)

为什么会从切换中获取文字?无论如何,它只有两个状态为真或假。我们可以使用状态来自动推断。切换按钮仅提供状态,而不能提供文本。

如果您特定于保留文本,则可能应该使用下拉菜单。

答案 2 :(得分:0)

如果您想要一个与ToggleButton关联的值,则应该对按钮使用setUserData方法。然后可以使用getUserData方法将其取回。