Проблема заключается в том, что текстовый вывод не является отладчиком.
Я просто попробовал его в своей Q6600 (разогнанной 3GHz) системе, и мои цифры еще хуже. Но его легко увидеть, что они идут по более длинному выходному тексту.
Я попытался запустить его с помощью
1000 итераций => 7,8 секунд 2000 итераций => 28 , 5 секунд 3000 итераций => 70 секунд
В прошлом я делал некоторые вещи с низким уровнем TK, и я знаю, что виджет TkText сохраняет текст в структуре BTree. Добавление текста персонажа - это один из худших способов сделать, но это похоже на то, что делает IDLE. Обычным способом является улавливание большего количества данных и добавление большего фрагмента текста.
Удивительно, если вы печатаете «x \n», вывод выполняется намного быстрее. 3000 итераций за 7 секунд и 10000 за 19 сек.
Таким образом, проблема, безусловно, связана с добавлением отдельных символов в существующие строки. Программист IDLE не знал, как работает TkText.
Итак, советую добавить в текст новые символы перевода или вывести более крупные фрагменты, а не только один символ «x».
Панель содержимого файла 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