删除位置渲染

原文: https://docs.oracle.com/javase/tutorial/uiswing/dnd/droplocation.html

这是一个更高级的主题,大多数人不需要担心它。但是,如果您有自定义组件,则需要自己处理放置位置渲染。

您可以注册以在dropLocation属性更改时收到通知。您将监听此更改并使用getDropLocation方法在组件的自定义渲染器或paintComponent方法中自行渲染放置位置。

以下是侦听dropLocation属性的示例:

  1. class Repainter extends PropertyChangeListener {
  2. public void propertyChange(PropertyChangeEvent pce) {
  3. repaintDropLocation(pce.getOldValue());
  4. repaintDropLocation(pce.getNewValue());
  5. }
  6. }
  7. comp.addPropertyChangeListener("dropLocation", newRepainter());

以下是paintComponent方法的示例:

  1. public void paintComponent(Graphics g) {
  2. super.paintComponent(g);
  3. DropLocation loc= getDropLocation();
  4. if (loc == null) {
  5. return;
  6. }
  7. renderPrettyIndicatorAt(loc);
  8. }