爲什麼此代碼輸出兩行大小相同的行?Graphics2D在PaintComponent()中縮放兩次
import java.awt.*;
import javax.swing.*;
public class G2Scale extends JPanel{
public static void main(String args[]) {
G2Scale g = new G2Scale();
g.setPreferredSize(new Dimension(200, 200));
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setContentPane(g);
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
g2.setColor(Color.BLUE);
g2.scale(0.5, 1.0);
g2.drawLine(5, 50, 100, 50);
g2.setColor(Color.GREEN);
g2.scale(1.0, 1.0);
g2.drawLine(5, 100, 100, 100);
}
}
我希望這些行的大小不同,因爲它們的縮放比例不同。從我所看到的情況來看,我認爲這個量表是基於以前的量表。我對嗎?
如果這是真的,我將如何獲得第二條線來縮放我認爲應該是什麼?
感謝
縮放是雪上加霜。所以第二個縮放語句是知道適用於第一個(這不會改變任何東西),請嘗試使用1.5代替寬度。更好的是,使用AffineTransofmration – MadProgrammer 2013-03-09 06:46:53