SWT Table.setLinesVisible (false) не работает в Windows 7 - PullRequest
2 голосов
/ 16 мая 2011

Наша компания пытается всех перевести с Windows XP на Windows 7, поэтому я тестирую некоторые из собственных приложений SWT, чтобы убедиться, что они все еще работают на Windows 7. Большинство из них все еще работают, но есть некоторыестранные причуды.Я смог разобраться с большинством из них, но с тем, с которым мне не повезло.

SWT Таблицы всегда кажутся уродливой черной линией между столбцами.Я пытался вызвать setLinesVisible (false), но безрезультатно.Я знаю, что это не кажется важным отличием, но наши пользователи могут быть весьма разборчивы.Кто-нибудь сталкивался с подобным опытом переноса приложений в Windows 7, или у вас есть предложения по поводу того, что я могу попробовать?* После (в Windows 7 - большие пальцы вниз [обратите внимание на черные линии]):

enter image description here

Есть предложения?

1 Ответ

3 голосов
/ 18 мая 2011

Попробуйте добавить следующий слушатель к вашей таблице:

      //Assuming your table is named 'table' and 'backgroundColor' is the
      //color you're using to paint it's background.
      table.addListener(SWT.EraseItem, new Listener() {
        @Override
        public void handleEvent(Event event) {
          event.gc.setBackground(backgroundColor);
          event.gc.fillRectangle(event.getBounds());
        }
      });

Это должно решить ваши проблемы с вертикальными линиями.Вот как это выглядит на моем примере:

Без слушателя (обратите внимание на вертикальные линии, они не черные в моем случае, они серые ... но они все еще видны):

enter image description here

А теперь с добавленным слушателем:

enter image description here

...