Лучше добавлять изображения во фрагмент svg
, используя тег svg
<image>
В приложении SVG нет текста, требующего автоматического переноса, например HTML
, поэтому в этом нет необходимости. использовать <foreignObject>
Изображения имеют разные размеры, поэтому мы берем изображение смартфона за основу, и изображение с текстом будет соответствовать по размеру первому изображению.
<image transform="translate(65 77) scale(0.9 0.99)"
.container {
width:25%;
height:25%;
}
<div class="container">
</style>
<svg id="designBox" width="100%" height="100%" viewBox="0 0 1242 2688">
<image transform="translate(65 77) scale(0.9 0.99)" width="100%" height="100%" xlink:href="https://s3-us-west-2.amazonaws.com/s.cdpn.io/2707120/Screenshot.png" />
<image class="backgroundBox" width="100%" height="100%" xlink:href="https://s3-us-west-2.amazonaws.com/s.cdpn.io/2707120/XS_Max_Space_GrayNEW.png" />
</svg>
</div>
Приложение работает адаптивно во всех современных браузерах .
Отделите остановку метода () от stopAndRemove (). Тогда запишите цикл с явным итератором, сделайте остановку и затем iterator.remove ().
"и" в имени метода запах кода.
Возможно, это - неправильный способ сделать это, но я всегда создаю набор удаления, который содержит индексы или ссылки на объекты, которые должны быть удалены. Я тогда выполняю итерации по тому набору и удаляю те индексы/объекты из исходного набора. Вероятно, не самое эффективное, но это сделало задание.
Вместо
for(Collection things : thing)
things.remove(thing)
я использую
Collection toRemove = new LinkedList();
for(things : thing)
toRemove.add(thing);
for(toRemove : thing)
things.remove(thing)
Когда я сделал это прежде, я всегда использовал "старый школьный" набор LinkedList, Итератор и Iterator.remove () метод для удаления текущего объекта.
Вы могли бы найти , эта статья о ConcurrentModificationException имеет некоторый совет в этой области.
Осуществите рефакторинг весь ServerObject, останавливающий код от stopAndRemove в частный stopServer метод, и затем сделайте удаление отдельно в stopAndRemove и closeCurrentlyOpen. Тогда можно использовать ListIterator, чтобы удалить их (или просто остановить их всех в для цикла и очистить список в конце).
Необходимо получить итератор и удалить использование его. Вы получаете исключение, потому что итераторы сбой быстро в Java.
Ответ на заголовок вопроса, не определенные детали данного примера. На самом деле это решение даже не является соответствующим в данной ситуации (рефакторинг является соответствующим, как предложили другие).
Однако кажется, что многие программисты Java не знают CopyOnWriteArrayList (часть JDK с тех пор 1.5) и пытаются прокрутить свои собственные решения той же проблемы (список копии прежде, чем выполнить итерации).