Как перерисовать элемент таблицы SWT с помощью GC или перерисовать другие элементы таблицы?

1

У меня есть таблица SWT с большим количеством элементов таблицы, и я рисую детали в элементе таблицы, используя Paint Listener evnt.gc.drawText и методы event.gc.drawImage

когда я вызываю метод table.redraw(), вся таблица получает redrawn, но я хочу перерисовать только один элемент таблицы, не затрагивая другие элементы таблицы

Теги:
user-interface
rcp
swt
paint

2 ответа

1

Получите TableItem для элемента, который вы хотите перерисовать и использовать:

Rectangle bounds = tableItem.getBounds();

table.redraw(bounds.x, bounds.y, bounds.width, bounds.height, true);
0

Чтобы использовать PaintListener event.gc для рисования объектов, нам нужно сначала установить границы таблицы, используя параметр table.setBounds(int x, int y, int width, int height). Если параметр setBounds не используется с объектами, событие paintControl не будет работать на них.

Canvas canvas = new Group(composite, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
canvasSchema.setBounds(180, 5, 750, 500);   
canvas.addPaintListener(new PaintListener() {
@Override
public void paintControl(PaintEvent e) {
if(lstSchemaReq.getSelectionCount() > 0){
    e.gc.drwaOval(100, 40, 50, 50);
  }
 }
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню