You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Alexei Zakharov (JIRA)" <ji...@apache.org> on 2008/02/20 12:40:43 UTC

[jira] Commented: (HARMONY-5527) [classlib][awt] Canvas paint method works incorrectly

    [ https://issues.apache.org/jira/browse/HARMONY-5527?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12570652#action_12570652 ] 

Alexei Zakharov commented on HARMONY-5527:
------------------------------------------

Igor, I've tried your patch on Ubuntu Linux IA32. Yes, it fixes the original issue about not-clearing the old text while repainting. However, if your patch is applied I don't see any text at all after clicking on button. It appears only if I touch mouse and move it a little bit away. My assumption is this is not a 100% correct behavior too. 

> [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
>            Assignee: Alexei Zakharov
>         Attachments: H-5527.patch, Harmony.JPG, RI.JPG
>
>
> 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.