1120 Хорошо, обо всем по порядку. Оба ваших вызова на button.getInsets()
и getBorderInsets(button)
идентичны , как вы видели в документации, и подтверждены источником (внутренне, getInsets()
просто вызывает getBorderInsets(this)
в любом случае).
Теперь, когда это не так, по умолчанию a JButton
украшено CompoundBorder . Если вы посмотрите на источник , то увидите, что CompoundBorder, используемый для кнопок, состоит из:
BasicBorders.ButtonBorder
и MarginBorder
. MarginBorder
, вероятно, ваш интерес здесь. Он имеет переопределение для getBorderInsets()
, которое возвращает поля компонента .
1123 Итак, в заключение, граница JButton на самом деле составлена из ДВУХ границ. Фактические ограничивающие линии снаружи (которые вы обычно рассматривали бы как «границу», заставляя ее выглядеть трехмерной), плюс граница поля внутри. Поэтому, когда вы делаете setMargin()
, вы также воздействуете на внутри части вашей составной границы.
Это объясняет ваш результат:
Кнопка Insets java.awt.Insets [top = 103 , слева = 13 , снизу = ] 13 , вправо = 13 ]
blockquote>Внешние линии имеют ширину 3 px каждая, а ваше поле равно ( 100 , 10,10,10 ), предоставляя вам вышеуказанную общую вставку границы.
Моя компания использовала это. Насколько я могу судить, это просто специальный дистрибутив SVN + Apache, включенный в установщик, поэтому его «надежность» будет такой же, как у Apache и Subversion.
Я использую VisualSVN Server в течение нескольких недель вместе с клиентом VisualSVN для Visual Studio. Это было без проблем, и настроить его было проще, чем упасть с бревна. Консоль управления позволяет создавать репозитории и папки, выполнять с ними простые операции (удалять, импортировать и т. Д.) И устанавливать разрешения пользователей (интегрированная Active Directory или проверка подлинности SVN). Он просто работает и делает достаточно, и не более того. Я думаю, они поняли это совершенно правильно.
Я специалист по Windows Server, поэтому я немного сомневался в использовании Apache, но он полностью прозрачен и интегрирован в VisualSVN, если бы они не упомянули об этом на веб-сайте, Я бы никогда не узнал, что использую Apache. Если вы хотите размещать и другие вещи в Apache, я думаю, вы бы хотели сделать что-то по-другому, но мне нужно было готовое решение, и VisualSVN предоставил его.
Можете ли вы дать определение «Надежный»? Вы имеете в виду, что вероятность сбоя или повреждения данных маловероятна, или вы имеете в виду способность обрабатывать большой объем трафика, или вы имеете в виду, что их трудно использовать или эксплуатировать?
SVN + Apache хороши в каждой из этих категорий, но я не понимаю Не знаю, что есть в специальной части установщика.
У меня была одна большая проблема.
У меня проблема в том, что репозитории сохраняются с окончанием строки Windows (возврат каретки + перевод строки) вместо окончания строки Linux (Line Feed), когда репозитории находятся в формате файловой системы.
Это помешало мне перенести репозиторий (со всеми исправлениями) с локального сетевого Windows-сервера VisualSVN на общедоступный Linux SVN-хостинг. Поскольку весь мой код находится в коде Windows, если я изменю окончания строк Windows на Linux, я испорчу весь свой код. Инструменты администрирования SVN в Linux не распознают репозиторий, если я их не конвертирую.
Таким образом, я могу переместить экспорт кода в публичный репозиторий, но я потеряю всю предыдущую историю изменений, что является огромным неудобством но не шоу-стоппер.
Некоторое время мы использовали его без каких-либо проблем; помимо графического интерфейса, это та же база Apache / SVN, что и любой другой сервер. Приятно иметь возможность обновить его с помощью MSI, и у него есть хороший графический интерфейс Windows для интеграции AD, управления сертификатами и т. Д. Они также, кажется, довольно быстро получают обновления. Единственные два минуса (конечно, когда я последний раз проверял):