Привет, эксперты: у меня есть класс, который расширяет JPanel теперь ShapePanel (Sp), который добавляется к обычному JPanel (контейнеру), который, в свою очередь, добавляется в JFrame (окно). В методе paintComponent я рисую форму.... но форма никогда не сохраняется после рендеринга. В отладчике я вижу, что он перерисовывается каждый раз, когда я изменяю размер или что-то в этом роде.
Теперь я перегрузил PaintComponent JPanel (Sp) и добавил это
super.paintComponent(g);
ShapeDrawerGui SdG = new ShapeDrawerGui((Graphics2D)this.getGraphics());
//for(Shape s : ArrayOfShapes)
{
if(s instanceof Rectangle)
SdG.Paint((Rectangle)s);
else if(s instanceof Triangle)
SdG.Paint((Triangle)s);
else
SdG.Paint((Circle)s);
} //s is a custom-shape object
графический объект исходит из (очевидно) JPanel....
Но нарисованное изображение никогда не остается на панели - видишь его на долю секунды и его нет...
Я сделал некоторые поиски, но безрезультатно.
Фактический рисунок
public ShapeDrawerGui(Graphics2D _g)
{
g = _g;
g.setColor(Color.Black);
}
@Override
public void Paint(Circle c)
{
g.drawArc(0, 0, 50, 50, 0, 360);
}
@Override
public void Paint(Triangle t)
{
Polygon p = new Polygon();
p.addPoint(0, 25);
p.addPoint(0 , 50);
p.addPoint(50, 50);
g.drawPolygon(p);
}
@Override
public void Paint(Rectangle r)
{
g.drawRect(0, 0, 50, 50);
}
С уважением
Маркус
Paint()
с заглавной буквой P - ну... ну, это не проблема. - person ring bearer   schedule 19.03.2012ShapeDrawerGui SdG = new ShapeDrawerGui((Graphics2D)this.getGraphics());
наShapeDrawerGui SdG = new ShapeDrawerGui((Graphics2D)g);
- person ring bearer   schedule 19.03.2012