Захват события щелчка мыши (или события свертывания / развертывания) в JXTaskPane с использованием setMinimumSize - PullRequest
0 голосов
/ 15 апреля 2019

РЕДАКТИРОВАТЬ: я сузил это до того факта, что у меня есть поверхность в JXTaskPane, которая требует минимального размера, в противном случае он не будет рисовать полностью.Если не задано свойство минимального размера, события коллапса / развертывания принимаются, как и ожидалось.

У меня (как мне кажется, должна быть) стандартная проблема болота: JXTaskPane, для которого мне нужно захватить события, когда они свернутыили развернут, или, альтернативно, запускает событие, когда на него щелкают, а затем запрашивает его состояние isCollapsed.

Это не похоже на работу через стандартный ActionListener, так как те не поддерживаются классом JXTaskPane.Поэтому я вместо этого добавил слушателя изменения свойства, думая, что свернуть / развернуть, безусловно, изменит его свойства.Как ни странно, это частично работает, но пропускает все события свертывания / развертывания.

Некоторый минимальный код:

static JXTaskPane mypane = new JXTaskPane();
...
PropertyChangeListener propertyChangeListener = new PropertyChangeListener() {
  @Override
  public void propertyChange(PropertyChangeEvent event) {
    String property = event.getPropertyName();
    System.out.println(property);
    System.out.println(event.getNewValue());
  }
 };

mypane.addPropertyChangeListener(propertyChangeListener);
mypane.setMinimumSize(new Dimension(500,1000));

При запуске программы я получаю следующие свойства, выводимые прослушивателем изменений:

 [java] minimumSize
 [java] java.awt.Dimension[width=500,height=1000]
 [java] ancestor
 [java] javax.swing.JPanel[,0,0,0x0,invalid,layout=java.awt.GridBagLayout,alignmentX=0.0,alignmentY=0.0,border=javax.swing.border.EmptyBorder@43a0cee9,flags=9,maximumSize=,minimumSize=,preferredSize=]

и, когда alt-tabbing от окна и обратно к нему, я получаю эти потерянные фокус изменения:

 [java] Frame.active
 [java] false
 [java] Frame.active
 [java] true

При нажатии, чтобы развернуть или свернуть панель, нет свойстваизменение вызвано.Чего мне не хватает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...