在我的程序中,我使用cardLayout在面板之间切换(每个面板用作一个单独的类)。其中一个面板,我们称之为电路板,包含图形。
据我所知,面板的大小适合窗口大小或jframe,所以当我调整窗口jpanel大小和图形时,它的大小也会发生变化。
如何在调整大小时将图形放在窗口中央?或者我理解如何将jpanel定位在中心,以便它包含的图形也位于窗口的中心?
我在程序中使用的图形可能是简单的方形网格(固定在单元格数量中),这里是代码,COLS和ROWS是常量,而SIZE(单元格的大小)调整为窗口的大小并且可以更改:
g.setColor(Color.LIGHT_GRAY);
for( int i = 1; i < COLS; i ++ ){
for( int j = 1; j < ROWS; j ++ ){
g.drawLine(0, j*SIZE, COLS*SIZE, j*SIZE);
g.drawLine(i*SIZE, 0, i*SIZE, ROWS*SIZE);
}
}
答案 0 :(得分:1)
可能的解决方案:
答案 1 :(得分:0)
如果我想绘制一条中心长度的线,我确定这个东西我画的宽度有多大。如果它的50和我的面板宽度是800,我做400 - 25或375作为我的起点绘制。所以不是从0画出,而是从起点画出来。如果我并排绘制8个东西,我希望整个8个居中,我会得到填充的总大小,因为我正在绘制的大小,并再次找出我周围有多少空间和每个列我画了那么多的抵消。