Используйте Array#splice()
и Array#push()
.
function moveZeros(a) {
var i = a.length - 1;
while (i--) {
if (a[i] === 0) {
a.push(a.splice(i, 1)[0]);
}
}
return a;
};
var array = [false, 1, 0, 1, 2, 0, 1, 3, "a"];
document.write('' + JSON.stringify(moveZeros(array), 0, 4) + '
');
Панель содержимого файла JFrame
имеет BorderLayout
. Если вы поместите компонент в BL без ограничений, он окажется в CENTER
. Центр может отображать только один компонент.
Для немедленного эффекта я предлагаю:
f.add(top, BorderLayout.PAGE_START);
f.add(mid);
f.add(bot, BorderLayout.PAGE_END);
f.setSize(500, 500);
и вызовите pack()
непосредственно перед setVisible(true)
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
на f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
in.setVisible(true);
За исключением самого кадра , возьмите их. Компонент автоматически становится видимым, когда он добавляется в контейнер верхнего уровня, и сам контейнер становится видимым. public class EncDecExample extends JFrame
на public class EncDecExample
. Этот код содержит ссылку на кадр, и это правый путь. setBorder(null);
просто установите нулевую границу для jpanel, которую вы используете, и используйте любой макет, который вам нравится.
BorderLayout.LAYOUT
? – Nic Hartley 14 December 2012 в 19:45FlowLayout
иGridLayout
с правильным конструктором. Но я немного подозрительно отношусь к этому & quot; так что мне не нужно & quot; вещи. Это приведет к созданию ужасного графического интерфейса. – Andrew Thompson 14 December 2012 в 19:55FlowLayout
иGridLayout
, IMHO, очень плохие LayoutManagers и полезны в очень немногих ситуациях.BorderLayout
иGridBagLayout
намного лучше. – Guillaume Polet 14 December 2012 в 20:01