harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Igor V. Stolyarov (JIRA)" <j...@apache.org>
Subject [jira] Created: (HARMONY-5527) [classlib][awt] Canvas paint method works incorrectly
Date Tue, 19 Feb 2008 07:46:43 GMT
[classlib][awt] Canvas paint method works incorrectly
-----------------------------------------------------

                 Key: HARMONY-5527
                 URL: https://issues.apache.org/jira/browse/HARMONY-5527
             Project: Harmony
          Issue Type: Bug
          Components: Classlib
            Reporter: Igor V. Stolyarov


Canvas paint method works incorrectly. According to Specification "... default operation is
simply to clear the canvas", in Harmony implementation method paint does nothing.

Simple reproducer:
import java.awt.*;
import java.awt.event.*;

public class CanvasTest extends Frame implements ActionListener{

    boolean clicked = false;
    Canvas c;
    Button b;

    public CanvasTest(){
        setLayout(new BorderLayout());

        Panel p1 = new Panel();
        p1.setPreferredSize(new Dimension(200, 200));
        c = new TestCanvas();
        p1.add(c);

        Panel p2 = new Panel();
        p2.setLayout(new BorderLayout());
        p2.setPreferredSize(new Dimension(200, 50));
        b = new Button("Click me");
        b.setPreferredSize(new Dimension(70,30));
        b.addActionListener(this);
        p2.add(b, BorderLayout.CENTER);

        add(c, BorderLayout.CENTER);
        add(b, BorderLayout.SOUTH);

        addWindowListener(new WindowAdapter(){
            public void windowClosing(WindowEvent e){
                System.exit(0);
            }
        });
    }

    public void actionPerformed(ActionEvent e){
        if(e.getSource() == b){
             clicked = true;
             c.repaint();
        }
    }

    class TestCanvas extends Canvas{
         public void paint(Graphics g){
             g.setFont(g.getFont().deriveFont(Font.BOLD));
             if(!clicked){
                 g.drawString("Test started!", 50, 20);
             } else {
                 super.paint(g);
                 g.drawString("Button clicked!", 50, 50);
             }
         }

         public void update(Graphics g){
             paint(g);
         }
    }

    public static void main(String[] argv){
        CanvasTest test = new CanvasTest();
        test.setSize(200, 250);
        test.setVisible(true);       
    }
}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message