我正在尝试在JPanel内部创建一个形状,并且随着JPanel的增加和减小,形状的大小也会相应地改变。
protected void paintComponent(Graphics g)
{
super.paintComponent(g);
g.drawLine(0,100,50,0);
}
我的问题是我不知道如何使用this.getHeight()或this.getLength()的内容来扩展它。
答案 0 :(得分:3)
除了@MadProgrammer概述的路径外,我还可以考虑另外两种缩放图形的方法。
Swing组件通常可以依赖Graphics
对象实际上是Graphics2D
对象。
Graphics2D.scale(sx,sy)
。AffineTransform
的缩放实例(使用getScaleInstance(sx,sy)
获得。在绘制之前将其设置为Graphics2D
。使用任何一种方法,原始坐标将根据需要进行缩放。
答案 1 :(得分:2)
假设您的意思是希望在组件大小改变时保持比例...
有几种方法可以做到这一点......
您可以从确定“默认”值开始,也就是说,如果“首选”宽度为200
,则行起点为宽度的50%,终点为25%。宽度。
这可以让你做类似的事情......
int width = getWidth();
int x1 = (int)(Math.round(width * 0.5d);
int x2 = (int)(Math.round(width * 0.25d);
g.drawLine(0, x1, x2, 0);