Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8127866

[ComboBox] exception is thrown, when you try to hide/open dropDown, when showing property is unidirectionaly binded.

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P4
    • Resolution: Fixed
    • Affects Version/s: fx2.1
    • Fix Version/s: fx2.1
    • Component/s: javafx
    • Labels:
    • Environment:

      2.1.0b05

      Description

      java.lang.RuntimeException: A bound value cannot be set.
              at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:118)
              at com.javafx.preview.control.ComboBoxBase.hide(ComboBoxBase.java:214)
              at com.sun.javafx.scene.control.behavior.ComboBoxBaseBehavior.hide(ComboBoxBaseBehavior.java:218)
              at com.sun.javafx.scene.control.behavior.ComboBoxBaseBehavior.onAutoHide(ComboBoxBaseBehavior.java:230)
              at com.sun.javafx.scene.control.skin.ComboBoxPopupControl$2.handle(ComboBoxPopupControl.java:101)
              at javafx.stage.PopupWindow.doAutoHide(PopupWindow.java:370)
              at com.sun.javafx.stage.PopupEventRedirector.handleMousePressedEvent(PopupEventRedirector.java:101)
              at com.sun.javafx.stage.PopupEventRedirector.handleRedirectedEvent(PopupEventRedirector.java:47)
              at com.sun.javafx.event.EventRedirector.dispatchCapturingEvent(EventRedirector.java:85)
              at com.sun.javafx.event.CompositeEventDispatcher.dispatchCapturingEvent(CompositeEventDispatcher.java:22)
              at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:31)
              at com.sun.javafx.event.EventRedirector.redirectEvent(EventRedirector.java:103)
              at com.sun.javafx.event.EventRedirector.dispatchCapturingEvent(EventRedirector.java:82)
              at com.sun.javafx.event.CompositeEventDispatcher.dispatchCapturingEvent(CompositeEventDispatcher.java:22)
              at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:31)
              at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
              at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:53)
              at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:33)
              at javafx.event.Event.fireEvent(Event.java:171)
              at javafx.scene.Scene$MouseHandler.process(Scene.java:2893)
              at javafx.scene.Scene$MouseHandler.process(Scene.java:2687)
              at javafx.scene.Scene$MouseHandler.access$1300(Scene.java:2653)
              at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1279)
              at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:1911)
              at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:204)
              at com.sun.glass.ui.View.handleMouseEvent(View.java:314)
              at com.sun.glass.ui.View.notifyMouse(View.java:639)
              at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
              at com.sun.glass.ui.win.WinApplication.access$100(WinApplication.java:29)
              at com.sun.glass.ui.win.WinApplication$2$1.run(WinApplication.java:62)
              at java.lang.Thread.run(Thread.java:722)


      import com.javafx.preview.control.ComboBox;
      import javafx.application.Application;
      import javafx.scene.Scene;
      import javafx.scene.control.ToggleButton;
      import javafx.scene.layout.Pane;
      import javafx.scene.layout.VBox;
      import javafx.stage.Stage;

      public class Issue1 extends Application {

          public static void main(String[] args) {
              launch(args);
          }
          final ComboBox testedComboBox = new ComboBox();

          @Override
          public void start(Stage stage) throws Exception {
              Pane pane = new Pane();
              pane.setPrefHeight(200);
              pane.setPrefWidth(200);

              pane.getChildren().add(testedComboBox);

              VBox vb = new VBox();

              ToggleButton toggleButton = new ToggleButton();
              testedComboBox.showingProperty().bind(toggleButton.selectedProperty());

              vb.getChildren().addAll(pane, toggleButton);
              Scene scene = new Scene(vb, 400, 400);
              stage.setScene(scene);
              stage.show();
          }
      }

      Situation:
      If you click on toggle button, you can see, that it controls showing property of comboBox.

      Steps to reproduce:
      Try to click on comboBox (to open or to hide it).

        Attachments

          Activity

            People

            • Assignee:
              jgiles Jonathan Giles
              Reporter:
              akirov Alexander Kirov (Inactive)
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:
                Imported: