harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexei Zakharov (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HARMONY-5527) [classlib][awt] Canvas paint method works incorrectly
Date Wed, 20 Feb 2008 15:11:43 GMT

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

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

Ok, I see. So I suggest to commit your current patch and open another JIRA about extra background
clearing on Linux. 
BTW, Igor what is the purpose of p1 and p2 in the above test case? I can't find the place
where these panels are used. You probably mean
        add(p1, BorderLayout.CENTER);
        add(p2, BorderLayout.SOUTH); 
instead of
        add(c, BorderLayout.CENTER);
        add(b, BorderLayout.SOUTH); 
?

> [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.


Mime
View raw message