Button events in ListCells not working
Jonathan Giles
jonathan.giles at oracle.com
Thu Feb 13 23:09:10 PST 2014
File a bug in Jira and I can take a closer look in the coming days. Thanks!
-- Jonathan
Sent from a touch device. Please excuse my brevity.
On 14 February 2014 19:46:12 GMT+13:00, Daniel Opitz <dfxloc at gmail.com> wrote:
>Hi,
>
>I found something that looks like a bug. When a Button is placed in a
>ListCell (or probably any other Cell) its onAction event is never fired
>and onMouseClicked very rarely and seemingly randomly. Or is it me
>doing things the wrong way? Using the JDK8 RC. Here is some example
>code:
>
>import javafx.application.Application;
>import javafx.collections.FXCollections;
>import javafx.collections.ObservableList;
>import javafx.scene.Scene;
>import javafx.scene.control.Button;
>import javafx.scene.control.ListCell;
>import javafx.scene.control.ListView;
>import javafx.stage.Stage;
>
>public class Testing extends Application {
>
> public static void main(String[] args) {
> launch(args);
> }
>
> @Override
> public void start(Stage primaryStage) throws Exception {
> ObservableList<String> strings =
>FXCollections.observableArrayList();
> strings.addAll("text", "another");
> ListView<String> list = new ListView<>(strings);
> list.setCellFactory(cell -> new ButtonCell());
> Scene s = new Scene(list, 300, 400);
> primaryStage.setScene(s);
> primaryStage.show();
> }
>
> private class ButtonCell extends ListCell<String> {
>
> @Override
> protected void updateItem(String item, boolean empty) {
> super.updateItem(item, empty);
> if (empty) {
> setText(null);
> setGraphic(null);
> } else {
> setText(item);
> Button b = new Button("button");
> b.setOnAction(action -> System.out.println("zam"));
> b.setOnMouseClicked(action ->
>System.out.println("bam"));
> setGraphic(b);
> }
> }
> }
>}
>
>
>--
>Daniel Opitz
More information about the openjfx-dev
mailing list