SetTitlePosition слева от JComponent - PullRequest
2 голосов
/ 08 марта 2011

Можно ли разместить заголовок слева (или справа) от JComponent?

Я имею в виду не оправдание, а реальную позицию ..

Я попробовал setTitlePosition (TitledBorder.LEFT) на TitledBorder, связанном с JComponent, но, кажется, не работает (может быть, оставлено только для обоснования?)

Если это невозможно, у кого-нибудь есть достаточно простой способ добиться этого эффекта?

Я хотел бы написать такой код:

 TitledBorder titleB = new TitledBorder(description);
 titleB.setTitlePosition(LEFT); 

Ответы [ 2 ]

3 голосов
/ 08 марта 2011

Полагаю, вы получили IllegalArgumentException, поскольку LEFT, по-видимому, недопустимая позиция.Это код для TitledBorder.setTitlePosition:

  switch (titlePosition) {
      case ABOVE_TOP:
      case TOP:
      case BELOW_TOP:
      case ABOVE_BOTTOM:
      case BOTTOM:
      case BELOW_BOTTOM:
      case DEFAULT_POSITION:
            this.titlePosition = titlePosition;
            break;
      default:
        throw new IllegalArgumentException(titlePosition +
                                    " is not a valid title position.");
    }

Я не думаю, что установка заголовка влево / вправо для компонента существует OOTB.Однако вы можете создать свою собственную рамку или (возможно) упростить свой собственный компонент с меткой, отображающей текст по вертикали, и этот пользовательский компонент затем добавляется на панель или тому подобное с помощью BorderLayout LEFT / RIGHT.

greetz,
Стейн

2 голосов
/ 08 марта 2011

Несколько подклассов JComponent, например, для надписей и кнопок, включают методы, которые устанавливают горизонтальное и вертикальное положение текста заголовка компонента относительно его значка.Этот пример показывает DefaultTableCellRenderer, подкласс JLabel, с меткой справа:

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