Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Классы 
V
    Опции темы
Snik
Дата 24.1.2008, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 16.8.2006

Репутация: нет
Всего: нет



Добрый вечер!
Подскажите как определить класс от первого (PaintPanel).
Задача стоит так: Разработать два класса первый должен наследоватся от JPanel второй от первого. В каждом из них должен быть переопределен метод paint. И каждый должен иметь несколько конструкторов. 
Пока я не определяю class PaintPanelExt прога копилится а после добавления ошибка (см. ниже)
Правильное ли направление я взял для решения такой задачи ?

Код

import javax.swing.*;
import java.awt.event.*;
import java.awt.*; 
import java.awt.Graphics;
import java.applet.*;
import java.util.*;

class Start {
  Start(){
    JFrame  jfrm = new  JFrame("TEST");
    jfrm.setSize(1200, 600);
    jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       
    PaintPanel jpnl = new PaintPanel(1200, 600); 
    //PaintPanelExt jpnlExt = new PaintPanelExt(600, 220, 6); 

    JTabbedPane jtp = new JTabbedPane();
    jtp.addTab("test № 1",jpnl);
    jfrm.getContentPane().add(jtp);
    jfrm.setVisible(true);
  }  

  public static void main(String[] args){ 
    SwingUtilities.invokeLater(new Runnable() {
      public void run() {
        new Start();
      }
    }); 
  }
}

class PaintPanelExt extends PaintPanel{  
    int step; 
    protected void paintComponent(Graphics g) {
    for (int i=0; i<getWidth(); i+=step){
      g.drawLine(20, 20, 20+step, 100+step);
    }
  }
}

class PaintPanel extends JPanel {
    
  PaintPanel(int w, int h) {
    setOpaque(true);
    setBorder(BorderFactory.createLineBorder(Color.GREEN, 3));
    setPreferredSize(new Dimension(w, h));
    JLabel      lbl0      = new JLabel("Ввести строку:");
    add(lbl0);
  }
  protected void paintComponent(Graphics g) {
    for (int i=0; i<getWidth(); i+=4){
      g.drawLine(20, 20, 20, 120);
    }
  }
}    


C:\Program Files\Java\jdk1.6.0_03\bin>javac.exe Start.java
Start.java:32: cannot find symbol
symbol  : constructor PaintPanel()
location: class PaintPanel
class PaintPanelExt extends PaintPanel{
^
1 error

PM MAIL   Вверх
Aristotelb
Дата 24.1.2008, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 23.3.2007
Где: Саратов

Репутация: 4
Всего: 5



Очевидно в классе PaintPanel он хочет видеть конструктор без параметров, о чем и сообщает.
PM MAIL ICQ   Вверх
powerOn
Дата 24.1.2008, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 47
Всего: 159



Модератор: Название темы должно отражать ее суть! Либо меняем название темы, либо она пойдет в мусорку.

 Правила форума: http://forum.vingrad.ru/index.php?act=boardrules


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
Snik
Дата 24.1.2008, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 16.8.2006

Репутация: нет
Всего: нет



Непойму как сменить тему....  

А как правильно записать классы чтобы через new создавать хоть PaintPanel  хоть PaintPanelExt ?

PM MAIL   Вверх
v2v
Дата 24.1.2008, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 8
Всего: 56



Цитата(Snik @  24.1.2008,  22:14 Найти цитируемый пост)
Пока я не определяю class PaintPanelExt прога копилится а после добавления ошибка (см. ниже)
Правильное ли направление я взял для решения такой задачи ?

архитектура правильная, только вот разберись с конструкторами. необходимо помнить что если ты создал в классе конструктор с параметрами, то в классе наследнике должен тоже перегрузить конструктор , иначе он будет обращатся к родительскому не существующему конструктору без параметров.


Это сообщение отредактировал(а) v2v - 25.1.2008, 00:50


--------------------
PM   Вверх
Snik
Дата 24.1.2008, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 16.8.2006

Репутация: нет
Всего: нет



Цитата(v2v @ 24.1.2008,  23:12)
в классе наследнике должен тоже перегрузить конструктор 

неполучается туплю .... как это?
Код

class PaintPanelExt extends PaintPanel{  
    int step; 

    PaintPanelExt(int w, int h, int step){
    this.w = w;
    this.h = h;
    this.step = step;
    }
    protected void paintComponent(Graphics g) {
    for (int i=0; i<getWidth(); i+=step){
      g.drawLine(20, 20, 20+step, 100+step);
    }
  }
}

тоже ошибки...
PM MAIL   Вверх
Aristotelb
Дата 25.1.2008, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 23.3.2007
Где: Саратов

Репутация: 4
Всего: 5



Код

class PaintPanelExt extends PaintPanel{  
    int step; 
    PaintPanelExt(int w, int h, int step){
        super(w,h);
        this.step = step;
    }
    protected void paintComponent(Graphics g) {
    for (int i=0; i<getWidth(); i+=step){
      g.drawLine(20, 20, 20+step, 100+step);
    }
  }
}

PM MAIL ICQ   Вверх
powerOn
Дата 25.1.2008, 00:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 47
Всего: 159



Модератор:  Напишите новое название мне в личку или прямо тут. Я все отредактирую и тему от оффтопа почищу.


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0527 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.