Отключить рамку фокусировки JButton

A newline (aka разрыв строки или end-of-line , EOL ) является специальным символом или символьная последовательность, которая знаменует конец строки текста. Точные коды используются в разных операционных системах:

LF:    Unix
CR:    Mac OS up to version 9
CR+LF: Windows, DOS

Вы можете использовать для линии (LF) или для возврата каретки (CR), а синтаксический анализатор XML заменит его соответствующий символ при передаче анализируемого текста в приложение. Они могут быть добавлены вручную, как показано в вашем примере, но особенно удобны при необходимости добавлять новые строки программно в строку:

  • Общие языки программирования: LF: " " CR: " "
  • XSLT: LF: CR:

Или, если вы хотите увидеть его в XML сразу же просто произведите это буквально:



    Address
    
        Sample
        Text 123
    

Новая строка все еще не отображается?

Имейте в виду, что, как приложение интерпретирует текст, включая новые строки, зависит от него. Если вы обнаружите, что ваши новые строки игнорируются, возможно, приложение автоматически запускает текст, разделенный символами новой строки.

HTML-браузеры, например, будут игнорировать символы новой строки (и нормализуют пространство в тексте, пространства консолидируются). Чтобы разбить строки в HTML,

  • используйте
    ; или
  • в элементе, таком как div или p, который по умолчанию вызывает разрыв строки после вложенного текста или в элемент, такой как pre, который по умолчанию обычно сохраняет пробелы и разрывы строк; или
  • используют стили CSS, такие как white-space для управления рендерингом новой строки.

Приложение XML не работает?

Если приложение XML не уважает ваши новые строки, а работа в рамках модели обработки приложения не помогает, другой возможный метод использования CDATA заключается в том, чтобы описать синтаксический анализатор XML , а не , для анализа текста содержащую новую строку.



    Address
    
        
    

или, если разметка HTML распознается ниже по течению:



    Address
    
        
                 Text 123]]>
    

Будет ли эта помощь зависеть от семантики, определенной приложением, на одном или нескольких этапах в конвейер обработки XML, который проходит XML.

Нижняя строка

A newline (ака разрыв строки или end-of-line , EOL ) можно добавить так же, как любой символ в XML, но помните о

  • , отличающемся соглашениями OS
  • отличается семантикой XML-приложений

29
задан 0xCursor 21 June 2018 в 17:02
поделиться

5 ответов

Это не граница. Это фокус. Вы можете удалить его, используя:

jButton1.setFocusPainted(false);
100
ответ дан brimborium 21 June 2018 в 17:02
поделиться

Я не думаю, что делать это с обычным JButton - хорошая идея. Если ничего, он не будет отображаться одинаково на разных платформах (Mac и Linux), если вы планируете показывать эту кнопку на разных платформах. Для всех практических целей button.setFocusPainted(false); следует позаботиться о ваших текущих требованиях.

Подумайте об использовании расширенного JLabel с поведением, аналогичным кнопке (со слушателями действий), чтобы избежать различий в поведении.

1
ответ дан ring bearer 21 June 2018 в 17:02
поделиться

посмотрим, может ли это помочь вам Удалить границу

или, может быть, это

Border emptyBorder = BorderFactory.createEmptyBorder();
yourButton.setBorder(emptyBorder);
0
ответ дан Rbn 21 June 2018 в 17:02
поделиться

Это может быть старая тема, но я решил мою с button.setFocusable(false)

и надеюсь, что это поможет тем, кто еще ищет какой-то ответ. приветствия.

6
ответ дан ralphgabb 21 June 2018 в 17:02
поделиться

После копания я нашел лучшее решение. Это также распространенная ошибка пользовательского интерфейса в приложениях GTK в Windows, одним из которых является GIMP. Это сильно раздражает меня, поэтому я хотел найти лучшее глобальное исправление, чем устанавливать его для каждого элемента управления вручную.

Обходной путь устанавливает цвет для фокуса на всех общих элементах управления, которые не должны появляться прозрачными. Я много тестировал с Windows Forms в Visual Studio. Кнопки панели инструментов и кнопки ToggleButtons никогда не должны иметь пунктирной границы, даже когда они находятся в фокусе. Панели инструментов должны быть setFocusable (false); по умолчанию, как в Windows. Любой другой элемент управления должен иметь пунктирную границу, как в Swing, но только при фокусировке.

        // Removes the dotted border around controls which is not consistent with Windows
        UIManager.put("Button.focus", new ColorUIResource(new Color(0, 0, 0, 0)));
        UIManager.put("ToggleButton.focus", new ColorUIResource(new Color(0, 0, 0, 0)));

        // ways to remove it from other controls...
        UIManager.put("CheckBox.focus", new ColorUIResource(new Color(0, 0, 0, 0)));
        UIManager.put("TabbedPane.focus", new ColorUIResource(new Color(0, 0, 0, 0)));
        UIManager.put("RadioButton.focus", new ColorUIResource(new Color(0, 0, 0, 0)));
        UIManager.put("Slider.focus", new ColorUIResource(new Color(0, 0, 0, 0)));

        // figure out combobox
        UIManager.put("ComboBox.focus", new ColorUIResource(new Color(0, 0, 0, 0)));
2
ответ дан Goombert 21 June 2018 в 17:02
поделиться
Другие вопросы по тегам:

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