Увеличивайте толщину границы фокусируемой области по очереди - PullRequest
0 голосов
/ 07 августа 2020

У меня проблема с Java Swing и LAF. Я использую JGoodies, и я попытался увеличить толщину границы сфокусированной области. Я пробовал через UIDefault, но такого варианта нет. пример границы Можете ли вы дать мне подсказку, как установить границу?

Я видел этот пост: Изменить цвет Java индикатора фокуса компонента Swing но решения моей проблемы нет.

пример

1 Ответ

0 голосов
/ 16 августа 2020

Этот стиль зависит от L&F, если он поддерживает свойство Table.border или Table.scrollPaneBorder.

В некоторых случаях этого свойства Table.scrollPaneBorder достаточно, но нет правил, чтобы иметь таблица, заключенная в таблицу переноса области прокрутки. Другими словами, у вас может быть таблица без панели прокрутки.

если у вас есть таблица без панели прокрутки, проблема может быть решена с помощью LookAndFeel, если ваш фактический L & f не имеет этой поддержки, решения несколько, например:

  • Используйте другие l и f. например Material-ui-swing , table.border находится в развивающейся ветке, вы можете скомпилировать исходный код.
  • Разработайте персональный TableUI, чтобы установить границу внутри пользовательского интерфейса, например точка первая
  • , вы можете поместить свою таблицу в панель прокрутки, но при этом должны соблюдаться правила L & F.

1. Реализуйте интерфейс таблицы. (от material-ui-swing )

вставьте границу внутри свойства Table.border, например:

UiManager.put("Table.border", new BorderUIResources(YOUR_BORDER));

Вам нужно чтобы обернуть границу внутри BorderUIResource, потому что, если вы реализуете переключатель L6f внутри своего приложения, Swing не удаляет правильность без интерфейса UIResource.

public class MaterialTableUI extends BasicTableUI {


    public static ComponentUI createUI (JComponent c) {
        return new MaterialTableUI();
    }

    @Override
    public void installUI (JComponent c) {
        super.installUI (c);
        table.setBorder(UIManager.getBorder("Table.border"));
    }
}

В этом ответе содержится обзор всех возможных решений, которые существует, если таблица развернута из области прокрутки. Фактически, правильность Table.scrollPaneBorder должна работать нормально

Пример с material-ui-swing

set border

UIManager.put("Table.border", BorderFactory.createLineBorder(MaterialColors.COSMO_BLACK, 5));

введите описание изображения здесь

...