![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Qawra |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 188 Регистрация: 6.3.2007 Репутация: нет Всего: 4 |
для школы нам надо за каникулы написать игру используя GUI . За три занятия нам это GUI обьяснили но практических навыков у меня нет .А надо изобразить листочек в клеточку где два игрока по очереди ставят точки а компьютер обводит замкнутые контуры одного цвета .
Что-то подобное есть здесь но оно не на Java http://www.yoursdots.narod.ru/ Я нарисовала как смогла простое окошко
Надо нарисавать на нём решётку. Читаю сейчас по английски на http://math.hws.edu/javamath/javadoc/edu/h.../draw/Grid.html public class Grid extends Drawable A Grid object draws a graph paper-like grid on a Canvas. The pixel width and height between adjacent grid lines is specified as a parameter to the constructer, or through the access methods "setXSP(double)" and "setYSP(double)". Note that the spacing will be scaled to between PIX_MIN and PIX_MAX (20 and 80, respectively, by default). The color of the grid lines can be set, and defaults to (220, 220, 220). Кажется это то что мне надо. Но не понятно с конструктором после того как я изменю public class MyGui extends JFrame , implementsDrawable я должна передать в конструктор размеры ячейки .А конструктор мне кажется вообще ничего общего с Grid or Drawable не имеет ! Как это можно обойти ? Это сообщение отредактировал(а) Qawra - 20.12.2008, 13:36 |
|||
|
||||
| dorogoyIV |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1503 Регистрация: 26.3.2007 Репутация: 36 Всего: 46 |
не очень давно я писал здесь в тему про шашки (правда там не доделано, но у меня есть доделанная версия).
поищи поиском |
|||
|
||||
| Qawra |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 188 Регистрация: 6.3.2007 Репутация: нет Всего: 4 |
не получается даже
public class MyGui extends JFrame implements Drawable я импортировала на всякий случай дополнительно import java.lang.Object ; но BlueJ всё равно пишет cann't find symbol (по видимому имея в виду Drawable). |
|||
|
||||
| Qawra |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 188 Регистрация: 6.3.2007 Репутация: нет Всего: 4 |
хорошие шашки.. иногда правда они меня не слушаются . Наверное искусственный интеллект !
Клетки хорошо прорисованы но мне ведь нужна только клеточная сетка и с той целью что-бы потом в её углах рисовать точки .Я вот теперь думаю.. А как определять что это угол клетки и там можно поставить точку в процессе игры ? Это же целая проблема вырисовывается ... |
|||
|
||||
| Cyclone |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 2.5.2007 Репутация: нет Всего: нет |
У тебя клетки будут определённого размера. По координатам клика мыши ты сможешь понять, на пересечении он произведён, или нет. Ставишь на свою панельку gridPanel.addMouseListener(..); . В обработчике события mouseClicked(..) проверяешь координаты клика, получая их из входного объекта события ("MouseEvent e", по-моему). Условно говоря, размер клетки: 10*10px. Если e.getX(); делится на 10 без остатка, значит клик был совершён на вертикальной линии. То же самое для горизонтальной - по координате Y. Лучше, конечно, небольшой "зазор" для клика оставить, чтобы не приходилось целиться в уголок с точностью до пикселя. Например, остаток от деления < 3 или > 7. Это сообщение отредактировал(а) Cyclone - 20.12.2008, 14:37 |
|||
|
||||
| Qawra |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 188 Регистрация: 6.3.2007 Репутация: нет Всего: 4 |
Понятно... как только изображу решетку сразу попытаюсь применить ..Надо implements все три
MouseListener,ChangeListener, FocusListener ? |
|||
|
||||
| SoulKeeper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.1.2007 Где: Ukraine, Lviv. Репутация: 2 Всего: 15 |
Решетка ;) |
|||
|
||||
| Qawra |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 188 Регистрация: 6.3.2007 Репутация: нет Всего: 4 |
спасибо... это её надо попробовать в моё окно на центральную панель прикрепить ..А в ней нет конструктора ....Сейчас попробую наубум его нарисовать
Не получается .. . Это сообщение отредактировал(а) Qawra - 20.12.2008, 23:01 |
|||
|
||||
| SoulKeeper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.1.2007 Где: Ukraine, Lviv. Репутация: 2 Всего: 15 |
|
|||
|
||||
| Qawra |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 188 Регистрация: 6.3.2007 Репутация: нет Всего: 4 |
А у меня этот код вывел пустое окошко без решётки :(
Надо где-то изобразить что-то вроде ....getGraphics().drawLine(x,y,x+20,y+20); Но где теперь это изобразить ! |
|||
|
||||
| Qawra |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 188 Регистрация: 6.3.2007 Репутация: нет Всего: 4 |
Когда я пытаюсь включить это в метод build
программа говорит что for (int i=0 ; i<1000;i+20) is not a statement . что ей не нравится ?
Может ей конечно ещё что-то не нравится но пока она об этом не говорит .Я например не уверенна что (x,y,x+20,y+20) позволит нарисовать именно решётку Методов getWight и getHeigth у меня не было прописанно потому что окно не было resizable , его ширина и высота шли как постоянные .Может быть конечно это лучше переделать . |
|||
|
||||
| Qawra |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 188 Регистрация: 6.3.2007 Репутация: нет Всего: 4 |
решёточку я изобразила так
Я хотела сделать её постоянного размера setResizable(false); что бы потом по координатам можно было определить где можно ставить точку ( углы клеток ) А в реальности решётка получилась Resizable ! Почему ?! |
|||
|
||||
| SoulKeeper |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.1.2007 Где: Ukraine, Lviv. Репутация: 2 Всего: 15 |
Не ресайзится.
+ при выходе из приложения совершенно не надо делать setVisible(false), dispose, прочее. Да и совершенно бессмысленно держать копию высоты и ширины, в общем чуть почистил.
P.S. Почему AWT а не Swing? P.P.S. Не стоит экономить пару строчек кода делая его трудно читаемым.
P.P.P.S
Как это без? У меня же с решеткой Это сообщение отредактировал(а) SoulKeeper - 21.12.2008, 23:18 |
||||||
|
|||||||
| Qawra |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 188 Регистрация: 6.3.2007 Репутация: нет Всего: 4 |
Спасибо вам за такую чудненькую нерастягивающую решётку
У меня наверно BlueJ самовольничает. Кстати это бывает не редко . И в школе у нас тоже самое случается .Всё написано правильно - а он придирается. Сегодня он вашу решётку запускать вообще отказался потому что в строке public GridTest() throws HeadlessException он вдруг нашёл " invalid method declaration " которого вчера там небыло .Вчера ошибок он не находил.. но и решётки там тоже небыло .. "Не стоит экономить пару строчек кода делая его трудно читаемым." Так я же просто не знаю других вариантов .. Это был единственный вариант который я знала . Ситуация похожа на обучение иностранному языку когда тебе просто дали словарь и попросили сразу написать стихи на этом языке . Это не момент творчества .Это момент кошмара ... Мне вдруг пришла в голову мысль ..main метод при создании решётки надо отключить ..наверное .. Если я помню правильно , в программе должен быть только один main метод ..А программа у меня начинает работать с другого окошка . Там игроки должны будут выбрать себе цвет чернил , затем нажать кнопку Start что бы появилась решётка где они будут ставить свои точки.. Окошко у меня правда ещё совсем простецкое ..даже без кнопки " Start" , но main method я уже там прописала ...
Импортировала я наверно всё что смогла вспомнить потому что не была уверена что import javax.swing.*; предполагает импорт всех дочерних библиотек swing . Это сообщение отредактировал(а) Qawra - 22.12.2008, 15:39 |
|||
|
||||
| SoulKeeper |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.1.2007 Где: Ukraine, Lviv. Репутация: 2 Всего: 15 |
Всегда рад Имелось ввиду что вместо
лутше писать
NetBeans Eclipse IntlliJ IDEA Зачем себя мучить то |
||||
|
|||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |