Как сделать «что-то вроде диаграммы» изменяемого размера в Java AWT графике - PullRequest
0 голосов
/ 16 января 2020

Я уже получил это: https://i.stack.imgur.com/4o9GN.png Пока все хорошо, теперь я хочу узнать, как мне нужно изменить программу, чтобы сделать ее изменяемой. Пока только две половинки всегда прилипают к сторонам и раздвигаются.

Вот мой текущий код:

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.geom.*;

public class Program extends JFrame
{

DrawStuff pn1 = new DrawStuff();
public Program () 
{
    setTitle("Program");
    setSize(516,500);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    add(pn1, BorderLayout.CENTER);
    setLocationRelativeTo(null);
    setVisible(true);
    setResizable(true);
}

public static void main(String[] args) {
    new Program();

}

private class DrawStuff extends JPanel {
    public void paintComponent(Graphics g){
        int w = this.getWidth();
        int h = this.getHeight();

        Graphics2D graph2 = (Graphics2D)g;

        int y = h;
        int x = w - 10;
        int bluerects = 0;
        int greenrects = 0;
        int re = 0, gr = 0, bl = 0;

        while (bluerects < 26)
        {
            Shape drawRect2 = new Rectangle2D.Float(x,y,10,h);
            graph2.setColor(new Color(re,gr,bl));
            graph2.fill(drawRect2);
            x = x - 10;
            y = y - 16;
            bluerects++;
            if(gr == 240) gr = 0;
            else gr = gr + 30;
        }   
        x = 0;
        y = h;
        gr = 0;
        while (greenrects < 25)
        {
            Shape drawRect3 = new Rectangle2D.Float(x-10,y,10,h);
            graph2.setColor(new Color(re,gr,bl));
            graph2.fill(drawRect3);
            x = x + 10;
            y = y - 16;
            greenrects++;
            if (bl == 240) bl = 0;
            else bl = bl + 30;
        }   


    }
}
}

Спасибо за помощь. :)

...