我正在重写 JComponent 中背景的 paintComponent
方法,一切进展顺利。
但是,我想从左下角开始绘画,而不是从左上角开始。
我需要改变一些东西吗?
最佳答案
是的,您可以使用AffineTransform
从左下角绘制:
代码:
public static void main(String[] args) {
JFrame frame = new JFrame("Test");
frame.add(new JComponent() {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
// save the "old" transform
AffineTransform old = g2d.getTransform();
// update graphics object with the inverted y-transform
g2d.translate(0, getHeight() - 1);
g2d.scale(1, -1);
// draw what you want
g2d.drawLine(0, 0, 300, 200);
// restore the old transform
g2d.setTransform(old);
}
});
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 300);
frame.setVisible(true);
}
关于Java JComponent - 从左下角开始绘画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6828654/