У меня вопрос по теме создания маленького приложения и в целом - по разным примочкам, которые могут быть использованны в похожих проектах.
Я недавно в Java, всего 4 день, но решил начать с создания простенькой мини игры - текстового квеста. Сначала поработал над сюжетом, скелетом, начал прописывать диалоги, триггеры, но сейчас вот что: я пытаюсь сделать оболочку. То-есть меню, кнопки входа, выхода и т.п.
Проблема моя вот в чем: Я создал окно, расположил кнопочки, Название сверху есть, но мне нужно было добавить еще одну текстовую строку чуть ниже. Как добавить textArea в фрейм я не знал, но нашел один спосогб - он сделал это (Label X:) но.. строка висит по середине экрана И НИКАКИМИ КОМАНДАМИ Я НЕ МОГУ ЕЕ ОТТУДА СДВИНУТЬ ВВЕРХ ИЛИ КУДА-ЛИБО ЕЩЕ! Я перебрал разные команды, функции, но - безуспешно. что не так, или я выбрал неудачный способ текста?
Вот вырезка из кода с этим местом:
~~~
countLabel = new JLabel("\nКира Лис39 - Бесконечная Осень");//вот само название что висит как надо сверху!
Label Hello = new Label("\n \n \n \nСпасибо, что выбрали нас! ^_^ ня"); //а вот и то, что мне нужно разместить ПОД ним, а не в середине экрана слева!
Hello.setBackground(Color.getHSBColor(0.80f, 0.25f, 1));
Hello.setBounds(70, 100, 80, 20);//ни это,
Hello.setLocation(50, 50);// ни это...
Hello.setSize(50, 50);// ни это - просто НЕ РАБОТАЕТ! что бы я туда не вставлял и какие числа не писал!
add(Hello); //Добавление метки на рабочее поле аплета
newGame = new JButton("Новая игра");
saveGame = new JButton("Сохранить");
loadGame = new JButton("Загрузить");
~~~
Все чего я смог пока добиться - управление выравниванием справа, центру и слева через команду .setAlignment(1); НО! в какой-то момент оно работало, я смог цифрами менять положение и размер поля с фразой моей, однако вскоре она снова сбросилась по умолчанию и как я опять не крутил - так и не заработало снова. Я не знаю как это получалось! Код не менял последние сутки уже - все сижу над этой проблемой, аномалия просто, блин ((
Способ расположения компонентов зависит от используемого диспетчера компоновки.
В данном случае вам поможет setLayout(null). Это означает, что не используется никакой диспетчер компоновки и все элементы будут использовать абсолютные размеры и позиции. Как раз, как в вашем коде.
Но для Джавы это неправильный подход. Т.к. технология мультиплатформенная. В разных ОС компоненты выглядят по-разному. В Windows XP один стиль, в Windows 8 другой, в Mac OS третий. И то, что выглядит правильно на одной системе, может сползти на другой.
Лучше сразу прочитать теорию с примерами про все диспетчеры компоновки. Там немного и все понятно. Книга "Head First Java" 13 глава. Она есть на русском.
У меня появилась с этим приложением новая проблема! Только что залил в jar, склепал bat - все вообщем работает прекрасно и окно запускается и кнопка работает что должна.. Но на втором компе где 32 битная 7-ка - пишет не совместимо с данной Виндой (( Как так? Если я пишу на 64 - значит больше никто не прочтет его кроме 64-битных машин???