TextField в области прокрутки не отображается правильно

Вот еще один, который опирается на тип расширения :

#define ARRAYSIZE(arr) ({typeof (arr) arr ## _is_a_pointer __attribute__((unused)) = {}; \
                         sizeof(arr) / sizeof(arr[0]);})

Это работает, пытаясь настроить идентичный объект и инициализировать это с назначенным массивом инициализатором. Если массив передан, компилятор счастлив. Если указатель передан, компилятор жалуется на:

arraysize.c: In function 'main':
arraysize.c:11: error: array index in non-array initializer
arraysize.c:11: error: (near initialization for 'p_is_a_pointer')

0
задан camickr 17 January 2019 в 01:51
поделиться

1 ответ

Не используйте компоненты AWT в приложении Swing.

Компоненты Swing начинаются с «J» (JTextField, JPanel и т. Д.).

Не используйте пустой макет. Swing был разработан для использования с менеджерами верстки. Во-первых, панель прокрутки не будет работать должным образом, если панель, добавленная в область просмотра, не использует менеджер макетов.

При динамическом добавлении компонентов на панель базовая логика выглядит следующим образом:

panel.add(...);
panel.revalidate();
panel.repaint();

Синхронизированный блок не требуется. Качели компонентов должны быть обновлены из Event Dispatch Thread (EDT). Если ваш код не выполняется на EDT, вам нужно использовать SwingUtilities.invokeLater(...), чтобы поместить код на EDT. Прочитайте раздел из учебника по Swing на Concurrency для получения дополнительной информации.

0
ответ дан camickr 17 January 2019 в 01:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: