如何翻转drawRect以便绘制?

时间:2016-02-01 00:20:21

标签: java swing paintcomponent graphics2d

我在这里有一些代码,它以指数方式绘制,但是它以错误的方式绘制。负指数增长。这是我的代码,我正试图将其翻转。我会继续努力,但如果你有答案,请告诉我。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Graphics extends JPanel{   
    public static void main(String[] args) {    
        JFrame f =new JFrame ("Function");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Graphics g = new Graphics();
        f.add(g);
        f.setSize(700, 700);
        f.setVisible(true); 
}
public void paintComponent (java.awt.Graphics g) {
    super.paintComponent(g);
    int i = this.getWidth()-this.getWidth() + 5;

    int xoffset = this.getWidth()/2;
    int yoffset = this.getHeight()/2;

     for (int x = 0 ; x < 20 ; x++){
         g.setColor(Color.BLACK);
         this.setBackground(Color.WHITE);
         int p = x*x;
         g.fillRect(i+xoffset,10+yoffset,5,p);
         i = i + 10;
      } 
    }
  }

有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

更改矩形开始绘制的x / y位置(始终向右/向下绘制)

所以而不是

g.fillRect(i+xoffset,10+yoffset,5,p);
你可以......

g.fillRect(i + xoffset, 10 + yoffset - p, 5, p);

Onwards and upwards

我不知道你对int i = this.getWidth()-this.getWidth() + 5;的意图是什么,但显然没有意义(width - width == 0?)