@Override
  public void updateUI() {
    setUI(new BasicListUI() {
      MouseListener myListener;

      @Override
      protected void updateLayoutState() {
        super.updateLayoutState();

        Insets insets = list.getInsets();
        int listWidth = list.getWidth() - (insets.left + insets.right);
        if (listWidth >= cellWidth) {
          int columnCount = listWidth / cellWidth;
          cellWidth = (columnCount == 0) ? 1 : listWidth / columnCount;
        }
      }

      @Override
      protected void installListeners() {
        addMouseListener(myListener = new MouseAdapter() {
          @Override
          public void mousePressed(MouseEvent e) {
            myBeforeClickSelectedRow = list.getSelectedIndex();
          }
        });
        super.installListeners();
      }

      @Override
      protected void uninstallListeners() {
        if (myListener != null) {
          removeMouseListener(myListener);
        }
        super.uninstallListeners();
      }
    });
    invalidate();
  }
@Override
  public void updateUI()