import java.awt.Graphics2D; //導入方法依賴的package包/類
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g); //paint background
Graphics2D Canvas = (Graphics2D) g;
Canvas.setPaint(Color.BLACK);
Canvas.draw3DRect(0, 0, getWidth() - 1, getHeight() - 1, true);
if (getDiagrama() == null) {
return;
}
int w = LarguraPagina;
int h = AlturaPagina;
if (!proporcionalLinha) {
int nh = AlturaPagina;
PinteNoArea(Canvas);
for (int i = w; i < getWidth() + getColunas(); i += w) {
Canvas.drawLine(i, 1, i, getHeight());
}
if (!isNaoConsiderarLinhasColunas()) {
Canvas.setStroke(new BasicStroke(
1f,
BasicStroke.CAP_ROUND,
BasicStroke.JOIN_ROUND,
3f,
new float[]{2f, 1f},
0f));
}
for (int i = nh; i < getHeight() + getLinhas(); i += nh) {
Canvas.drawLine(1, i, getWidth(), i);
}
} else {
int nw = LarguraPagina;
PinteNoArea(Canvas);
for (int i = h; i < getHeight() + getLinhas(); i += h) {
Canvas.drawLine(1, i, getWidth(), i);
}
if (!isNaoConsiderarLinhasColunas()) {
Canvas.setStroke(new BasicStroke(
1f,
BasicStroke.CAP_ROUND,
BasicStroke.JOIN_ROUND,
3f,
new float[]{2f, 1f},
0f));
}
for (int i = nw; i < getWidth() + getColunas(); i += nw) {
Canvas.drawLine(i, 1, i, getHeight());
}
}
double z = (double) getWidth() / getDiagrama().getWidth();
Canvas.scale(z, z);
getDiagrama().ExternalPaint(g);
}