Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > Shape2D и paint(Graphics g)


Автор: Metal_Heart 15.7.2005, 12:57
Решил я посмотреть, что же такое Shape2D. Нашел "тьюториал" :
http://java.sun.com/docs/books/tutorial/2d/overview/shapes.html

примерчик открылся в небольшом окошечке, а я его взял и растянул (за правый нижний уголочек)
в итоге изображение пропало!!!

Пришел к выводу (после некоторых экспериментов), что функция paint(Graphics g)
далеко не всегда вызывается.

пришлось дополнить примерчик на проверку Resize и, заодно, на Move

вот укороченный код по сравнению с оригиналом:

Код


import javax.swing.*;
import java.awt.*;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentAdapter;
import java.awt.geom.Line2D;

public class Lines extends JFrame
{
 public Lines()
  {
    this.setTitle("Lines");
    this.setSize(200,200);
    this.setVisible(true);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
//========================================================
  public void paint(Graphics g)
  {
    Graphics2D g2 = (Graphics2D) g;
    Color fg3D = Color.BLACK;

    g2.setPaint(fg3D);
    g2.draw(new Line2D.Double(0, 0, 100, 100));
    g2.drawString("Line2D", 100, 100);

  }
//========================================================
  public static void main(String[] s)
  {
    final Lines l = new Lines();
    l.addComponentListener(new ComponentAdapter()
    {
      public void componentResized(ComponentEvent e)
      {
        l.repaint();
      }
      public void componentMoved(ComponentEvent e)
      {
        l.repaint();
      }
    });
  }
//========================================================
}




Автор: batigoal 15.7.2005, 13:13
Странно. Поигрался с их примером - вроде все в порядке у меня было.

Автор: Metal_Heart 15.7.2005, 13:19
а я заметил следующее:

увеличение окна за нижний-правый уголок - изображение пропадает
изменеие окна за нижнюю или правую сторону - изображение не появляется

уменьшение окна за нижний-правый уголок - изображение восстанавливается

вот smile


Благо мы с тобой давненько обсуждали тему - как изменение размеров самой формы отсеживать,
так что благодаря тебе я заткнул эту дыру у себя!

Другими словами - опять тебе спасибо!

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