Графика Java, несколько классов - PullRequest
1 голос
/ 03 января 2011

У меня небольшая проблема.Я пытаюсь написать программу, которая рисует коробку с карандашами.Я хочу иметь метод, который я могу вызвать из основного апплета, который рисует карандаш.В настоящее время моя основная программа выглядит следующим образом:

package Crayons;

import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JApplet;

@SuppressWarnings("serial")
public class CrayonBox extends JApplet 
{
 public void paint (Graphics page)
 {
  final int CENTER = 250;
  final int SQUARE_SIZE = 31;

  Crayon.drawCrayon(CENTER-5*SQUARE_SIZE, CENTER+5*SQUARE_SIZE, 9*SQUARE_SIZE,Color.red);
  page.set
 }
    }

, а моя вспомогательная программа, в которой есть методы рисования карандашом, выглядит следующим образом:

package Crayons;
import java.awt.Color;
import java.awt.Polygon;

@SuppressWarnings("serial")
public class Crayon extends CrayonBox
{


public static void drawCrayon (int x, int y, int height, Color color)
 {
  Polygon crayonTip = new Polygon();
  crayonTip.addPoint(x+15, y);
  crayonTip.addPoint(x+46, y);
  crayonTip.addPoint(x+62, y-62);
  crayonTip.addPoint(x+62, y);
  page.setColor(color);
 }
    }

Теперь мне нужна вторая программа для рисованияПолигон, который я создал с помощью

page.drawPolygon(crayonTip);

и изменил цвет с помощью

page.setColor(color);

, но он говорит, что страница не может быть разрешена.поэтому он не может контролировать команду страницы.Что очень раздражает.Есть ли способ обойти это?

Спасибо!

1 Ответ

2 голосов
/ 04 января 2011

Методу paint передается объект Graphics для обработки чертежа. Вы можете передать этот объект любым вспомогательным методам, передав объект page этим методам. Ваш drawCrayon метод становится:

public static void drawCrayon (int x, int y, int height, Color color, Graphics page)
 {
  ...
  page.setColor(color);
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...