Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2010, 12:05   #1
Yulia13666
 
Регистрация: 18.04.2010
Сообщений: 5
По умолчанию Наследование

Мне необходимо чтобы от фигуры квадрат наследовался перечеркнутый квадрат. Я так понимаю мне надо сначала создать абстрактный класс с методом для прорисовки, а в производных классах уже реализовать этот метод. Но я не знаю как передать в этот метод параметр Graphics g, который необходимый для рисования. Помогите пожалуйста!
Yulia13666 вне форума Ответить с цитированием
Старый 08.05.2010, 16:19   #2
Pliks
Пользователь
 
Регистрация: 20.11.2009
Сообщений: 46
По умолчанию

Можно попробовать присвоить статической переменной G1 типа Graphics значение g метода paint. Но это придется делать постоянно.
Иначе можно сделать getGraphics() в туже переменную G1 (точно не помню как) и использовать ее возможно.
Runtime.getRuntime().gc() ява - один из самых чистых языков.
Pliks вне форума Ответить с цитированием
Старый 08.05.2010, 16:52   #3
Yulia13666
 
Регистрация: 18.04.2010
Сообщений: 5
По умолчанию

Вот,например:
public class Square {
public void draw(Graphics g) { ... }
}

public class StrokedSquare extends Square {
public void draw(Graphics g) { ... }
}

public static void main(String[] args) {
StrokedSquare SS=new StrokedSquare();
SS.draw(???)
.....
}
Как передать на место (???) параметр Graphics g??
Yulia13666 вне форума Ответить с цитированием
Старый 08.05.2010, 19:33   #4
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Код:
public static void main(String[] args) {

             Graphics g = getGraphics();

             StrokedSquare SS=new StrokedSquare();

            SS.draw(g);

            .....
}
profi вне форума Ответить с цитированием
Старый 08.05.2010, 20:01   #5
Yulia13666
 
Регистрация: 18.04.2010
Сообщений: 5
По умолчанию

выдает ошибку на команде Graphics g = getGraphics();
Пишет о не совместимости типов.
Yulia13666 вне форума Ответить с цитированием
Старый 08.05.2010, 20:23   #6
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Странно. http://java.sun.com/javase/6/docs/ap...Graphics%28%29
profi вне форума Ответить с цитированием
Старый 08.05.2010, 20:29   #7
Yulia13666
 
Регистрация: 18.04.2010
Сообщений: 5
По умолчанию

Может можно как-то по-другому организовать?
Yulia13666 вне форума Ответить с цитированием
Старый 08.05.2010, 22:35   #8
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Вы что, гоните?
Делаете класс Square - пишете ему метод paint, который принимает Graphics и рисует квадрат, потом пишете класс StrokedSquare - перегружаете ему мето paint, где добавляете рисование еще одной линии.

Рисовать можно только в таких приложениях, где есть контекст рисования. В консольных не пытайтесь такое делать.
Сделайте апплет и рисуйте себе в методе paint. Или создайте оконное приложение и рисуйте в окне.

Последний раз редактировалось MaTBeu; 08.05.2010 в 22:44.
MaTBeu вне форума Ответить с цитированием
Старый 09.05.2010, 11:39   #9
Yulia13666
 
Регистрация: 18.04.2010
Сообщений: 5
По умолчанию

А потом при вызове метода paint что указать для параметра g??
Yulia13666 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Наследование lolopolosko Помощь студентам 1 21.11.2009 17:17
Наследование alex_triton Общие вопросы C/C++ 0 19.10.2009 20:25
Наследование beregok Общие вопросы C/C++ 1 04.07.2009 22:39
Наследование z3rg Общие вопросы C/C++ 9 30.04.2009 20:43
Наследование Кирилл13 Общие вопросы C/C++ 1 11.11.2008 14:47