У меня такая же проблема. Я последовал за советом Бруно и обнаружил, что добавление KeyListener только к «первой» кнопке в JFrame (то есть в левом верхнем углу) сделало трюк. Но я согласен с вами, что это своего рода тревожное решение. Поэтому я пошарил и обнаружил более аккуратный способ исправить ситуацию. Просто добавьте строку
myChildOfJFrame.requestFocusInWindow();
к вашему основному методу после создания вашего экземпляра вашего подкласса JFrame и установите его видимым.
Можно сделать это с регулярным выражением:
preg_replace("/(<br\s*\/?>\s*)+/", "<br/>", $input);
Это, если Вы передаете в своем исходном HTML, это возвратит строку с единственным < br/> замена каждого выполнения их.
Мой - почти точно то же как levik (+1), просто составляя некоторое другое форматирование br:
preg_replace('/(<br[^>]*>\s*){2,}/', '<br/>', $sInput);
без preg_replace, но работ только в PHP 5.0.0 +
$a = '<br /><br /><br /><br /><br />';
while(($a = str_ireplace('<br /><br />', '<br />', $a, $count)) && $count > 0)
{}
// $a becomes '<br />'
Расширенная удобочитаемость, короче, производит корректный вывод независимо от атрибутов:
preg_replace('{(<br[^>]*>\s*)+}', '<br/>', $input);
Используйте регулярное выражение, чтобы соответствовать <br/>
один или несколько раз, затем использовать preg_replace (или подобный) для замены <br/>
, такие как ответ levik.
Вы, вероятно, хотите использовать Регулярное выражение. Я не протестировал следующее, но я полагаю, что это правильно.
$text = preg_replace( "/(<br\s?\/?>)+/i","<br />", $text );
Всем спасибо .. Используется версия Jakemcgraw (+1)
Просто добавлена опция без учета регистра.
{(<br[^>]*>\s*)+}i
Отличный инструмент для проверки этих регулярных выражений:
Быстрый подход без регулярных выражений:
while(strstr($input, "<br/><br/>"))
{
$input = str_replace("<br/><br/>", "<br/>", $input);
}