Кнопка в nattable покрывает половину моей таблицы, кто-то может объяснить почему? - PullRequest
0 голосов
/ 28 января 2020

Я использовал следующий код для кнопки

natTable.addOverlayPainter(new NatTableBorderOverlayPainter());
  Composite panel = new Composite(parent, SWT.NONE);
  GridLayout layout = new GridLayout();
  layout.marginHeight = 5;
  layout.marginWidth = 8;
  panel.setLayout(layout);
  GridDataFactory.fillDefaults().grab(true, true).applyTo(panel);
  Composite gridPanel = new Composite(panel, SWT.NONE);
  gridPanel.setLayout(layout);
  GridDataFactory.fillDefaults().grab(true, true).applyTo(gridPanel);

  Composite buttonPanel = new Composite(panel, SWT.NONE);
  buttonPanel.setLayout(new RowLayout());
  GridDataFactory.fillDefaults().grab(true, false).applyTo(buttonPanel);

  Button addButton = new Button(gridPanel, SWT.PUSH);
  addButton.setText("Export");
  addButton.setSize(1, 1);
  addButton.setLocation(450, 150);
  addButton.addSelectionListener(new SelectionAdapter() {
      @Override
      public void widgetSelected(SelectionEvent e) {
          natTable.doCommand(new ExportCommand(natTable
                  .getConfigRegistry(), null, editable));
          natTable.updateResize();
      }

, но в конце я получаю это в результате https://imgur.com/EFcPaqo

1 Ответ

0 голосов
/ 29 января 2020

Ваш макет не работает. Возможно, потому что экземпляр NatTable не создан ни на одном из ваших композитов. Но трудно сказать, не видя его создания.

Либо посмотрите на Понимание макетов в SWT , либо даже посмотрите примеры NatTable PrintExample , которые показывают точно то же самое , Там вы можете видеть, что NatTable создан на gridPanel.

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