Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > Из первого вызвать метод второго класса


Автор: stas52 25.10.2006, 22:06
Помогите пожалуйста новичку разобраться. Что я делаю не так? Имеются 2 класса. Я пытаюсь из первого вызвать метод второго класса и нарисовать строку. Что-то неправильно. Но вот как надо???  smile 

Первый класс:
Код
import java.applet.*; 
import java.awt.*; 
import java.awt.event.*; 

public class Game_4x4 extends Applet implements MouseListener { 
  private int last_x, last_y; 
  public static int test=3;

  public void init() { 
    this.addMouseListener(this); 
  } 

  public void mousePressed(MouseEvent e) { 
    last_x = e.getX(); 
    last_y = e.getY();
    Paint Prim1 = new Paint();
    Prim1.paint();    
  }

  public void mouseReleased(MouseEvent e) {;} 
  public void mouseClicked(MouseEvent e) {;} 
  public void mouseEntered(MouseEvent e) {;} 
  public void mouseExited(MouseEvent e) {;} 
}
 
Второй класс:
Код
import java.applet.*; 
import java.awt.*; 

public class Paint extends Applet { 

  public void paint(Graphics g)
  {
    super.paint(g);
    g.drawString("Test",25,25);
  }
}

Автор: LSD 25.10.2006, 22:16
1. Используй теги code для вставки кусков кода.

2. Переменные и методы в Java принято называть с маленькой буквы, а слова разделять регистром, вот так:
Код
FileInputStream fileInputStream = new FileInputStream("file.txt");


3. Конкретная ошибка в том, что ты не передал объекту Prim1 объект Graphics в качестве аргумента. Но в данном случае это вообще не имеет смысла. Объясни что именно ты пытаешься сделать?

Автор: Dimonius 25.10.2006, 22:41
По моему конструктор класса Paint с параметром Graphics стал конструктором по умолчанию. Или я что-то путаю?
А в данном примере мне не понятно что stas52 пытается сделать...

Автор: stas52 25.10.2006, 22:42
При клике мышкой на аплет должен вызваться метод ДРУГОГО класса и нарисовать там что-нибудь. А вообще это будет игра в Пятнашки. (Домашняя работа в институте.)

Автор: LSD 25.10.2006, 22:52
Цитата(stas52 @  25.10.2006,  23:42 Найти цитируемый пост)
При клике мышкой на аплет должен вызваться метод ДРУГОГО класса и нарисовать там что-нибудь.

Проблема в том что:
- рисовать надо не так
- компонент Paint нигде не отображается

Почему ты выбрал в качестве компонентов именно апплет?

Автор: stas52 25.10.2006, 23:02
Я посчитал, что это самый простой вариант

Автор: LSD 25.10.2006, 23:08
Лучше унаследуй свой компонент от JComponent. Добавь у него флаг paint, и в зависимости от него в методе paint() рисуй разные вещи. Закинь его и кнопку на JFrame. Затем когда по кнопке щелкнут мышью, установи у второго флаг paint в true и вызови repaint().

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)