Bug 576 - The window turns into black after minimization
Summary: The window turns into black after minimization
Status: CONFIRMED
Alias: None
Product: CS3343 Chinese Checker
Classification: Unclassified
Component: GUI Component (show other bugs)
Version: unspecified
Hardware: All All
: --- enhancement
Assignee: yutongmen2-c
URL:
Depends on:
Blocks:
 
Reported: 2021-11-18 00:42 HKT by yutongmen2-c
Modified: 2021-11-21 18:16 HKT (History)
1 user (show)

See Also:


Attachments
The window turns black. (49.69 KB, image/jpeg)
2021-11-18 00:42 HKT, yutongmen2-c
Details

Note You need to log in before you can comment on or make changes to this bug.
Description yutongmen2-c 2021-11-18 00:42:07 HKT
Created attachment 90 [details]
The window turns black.

The window turns black.

Steps to reproduce:
1. Start the game.
2. Minimize the game window.

Actual outcome:
The window background becomes black.

Expected outcome:
The game will resume normally.
Comment 1 yutongmen2-c 2021-11-21 18:16:56 HKT
Previous Code:
@Override
    public void paint(Graphics g){
        g.setColor(Color.ORANGE);

        Point beginPoint, endPoint;
        Point beginPixel, endPixel;

        for(int i = 0; i < 9; i++){
            beginPoint = new Point(i, 0);
            endPoint = new Point(i, 8);
            beginPixel = index2Pixel(beginPoint);
            endPixel = index2Pixel(endPoint);
            g.drawLine(beginPixel.getX(), beginPixel.getY(), endPixel.getX(), endPixel.getY());
        }
        for(int j = 0; j < 9; j++){
            beginPoint = new Point(0, j);
            endPoint = new Point(8, j);
            beginPixel = index2Pixel(beginPoint);
            endPixel = index2Pixel(endPoint);
            g.drawLine(beginPixel.getX(), beginPixel.getY(), endPixel.getX(), endPixel.getY());
        }
        for(int k = 1; k <= 8; k++){
            beginPoint = new Point(0, k);
            endPoint = new Point(k, 0);
            beginPixel = index2Pixel(beginPoint);
            endPixel = index2Pixel(endPoint);
            g.drawLine(beginPixel.getX(), beginPixel.getY(), endPixel.getX(), endPixel.getY());
        }
        for(int k = 1; k <= 7; k++){
            beginPoint = new Point(8, k);
            endPoint = new Point(k, 8);
            beginPixel = index2Pixel(beginPoint);
            endPixel = index2Pixel(endPoint);
            g.drawLine(beginPixel.getX(), beginPixel.getY(), endPixel.getX(), endPixel.getY());
        }
        
        // draw indices
        g.setColor(Color.RED);
        g.setFont(new Font(Font.MONOSPACED, Font.BOLD, 24));
        for(int i=0;i<9;i++){
            Point pos = index2Pixel(new Point(i, -1));
            g.drawString(i+"", pos.getX(), pos.getY());
        }
        for(int i=0;i<9;i++){
            Point pos = index2Pixel(new Point(i, 9));
            g.drawString(i+"", pos.getX(), pos.getY());
        }
        g.setColor(Color.BLUE);
        for(int i=0;i<9;i++){
            Point pos = index2Pixel(new Point(9, i));
            g.drawString(i+"", pos.getX(), pos.getY());
        }
        for(int i=0;i<9;i++){
            Point pos = index2Pixel(new Point(-1, i));
            g.drawString(i+"", pos.getX(), pos.getY());
        }
        beginPoint = new Point(0, 0);
        endPoint = new Point(11, 0);
        beginPixel = index2Pixel(beginPoint);
        endPixel = index2Pixel(endPoint);
        int xOffset = -(int)(GAP/2*sqrt3);
        int yOffset = 0;

        g.setColor(Color.RED);
        g.drawLine(beginPixel.getX()+xOffset, beginPixel.getY()+yOffset, 
                    endPixel.getX()+xOffset, endPixel.getY()+yOffset);
        // g.drawLine(beginPixel.getX(), beginPixel.getY(), endPixel.getX(), endPixel.getY());
        g.drawString("x", endPixel.getX()+xOffset, endPixel.getY()+yOffset);
        endPoint = new Point(0, 11);
        beginPixel = index2Pixel(beginPoint);
        endPixel = index2Pixel(endPoint);
        g.setColor(Color.BLUE);
        g.drawLine(beginPixel.getX()+xOffset, beginPixel.getY()+yOffset, 
                    endPixel.getX()+xOffset, endPixel.getY()+yOffset);
        g.drawString("y", endPixel.getX()+xOffset, endPixel.getY()+yOffset);
    }



After Modification:
@Override
    public void paint(Graphics g){
	super.paint(g);
        g.setColor(Color.ORANGE);

        Point beginPoint, endPoint;
        Point beginPixel, endPixel;

        for(int i = 0; i < 9; i++){
            beginPoint = new Point(i, 0);
            endPoint = new Point(i, 8);
            beginPixel = index2Pixel(beginPoint);
            endPixel = index2Pixel(endPoint);
            g.drawLine(beginPixel.getX(), beginPixel.getY(), endPixel.getX(), endPixel.getY());
        }
        for(int j = 0; j < 9; j++){
            beginPoint = new Point(0, j);
            endPoint = new Point(8, j);
            beginPixel = index2Pixel(beginPoint);
            endPixel = index2Pixel(endPoint);
            g.drawLine(beginPixel.getX(), beginPixel.getY(), endPixel.getX(), endPixel.getY());
        }
        for(int k = 1; k <= 8; k++){
            beginPoint = new Point(0, k);
            endPoint = new Point(k, 0);
            beginPixel = index2Pixel(beginPoint);
            endPixel = index2Pixel(endPoint);
            g.drawLine(beginPixel.getX(), beginPixel.getY(), endPixel.getX(), endPixel.getY());
        }
        for(int k = 1; k <= 7; k++){
            beginPoint = new Point(8, k);
            endPoint = new Point(k, 8);
            beginPixel = index2Pixel(beginPoint);
            endPixel = index2Pixel(endPoint);
            g.drawLine(beginPixel.getX(), beginPixel.getY(), endPixel.getX(), endPixel.getY());
        }
        
        // draw indices
        g.setColor(Color.RED);
        g.setFont(new Font(Font.MONOSPACED, Font.BOLD, 24));
        for(int i=0;i<9;i++){
            Point pos = index2Pixel(new Point(i, -1));
            g.drawString(i+"", pos.getX(), pos.getY());
        }
        for(int i=0;i<9;i++){
            Point pos = index2Pixel(new Point(i, 9));
            g.drawString(i+"", pos.getX(), pos.getY());
        }
        g.setColor(Color.BLUE);
        for(int i=0;i<9;i++){
            Point pos = index2Pixel(new Point(9, i));
            g.drawString(i+"", pos.getX(), pos.getY());
        }
        for(int i=0;i<9;i++){
            Point pos = index2Pixel(new Point(-1, i));
            g.drawString(i+"", pos.getX(), pos.getY());
        }
        beginPoint = new Point(0, 0);
        endPoint = new Point(11, 0);
        beginPixel = index2Pixel(beginPoint);
        endPixel = index2Pixel(endPoint);
        int xOffset = -(int)(GAP/2*sqrt3);
        int yOffset = 0;

        g.setColor(Color.RED);
        g.drawLine(beginPixel.getX()+xOffset, beginPixel.getY()+yOffset, 
                    endPixel.getX()+xOffset, endPixel.getY()+yOffset);
        // g.drawLine(beginPixel.getX(), beginPixel.getY(), endPixel.getX(), endPixel.getY());
        g.drawString("x", endPixel.getX()+xOffset, endPixel.getY()+yOffset);
        endPoint = new Point(0, 11);
        beginPixel = index2Pixel(beginPoint);
        endPixel = index2Pixel(endPoint);
        g.setColor(Color.BLUE);
        g.drawLine(beginPixel.getX()+xOffset, beginPixel.getY()+yOffset, 
                    endPixel.getX()+xOffset, endPixel.getY()+yOffset);
        g.drawString("y", endPixel.getX()+xOffset, endPixel.getY()+yOffset);
    }