我是Jari,我在单独的JPanel中绘制圆圈时遇到了一些麻烦: 我的圈子不会位于名为“jPanelOutput”的jpanel中间,这里是我的代码:
Graphics2D graphics = (Graphics2D) jPanelOutput.getGraphics().create();
Insets insets = jPanelOutput.getInsets();
System.out.println(insets.toString());
int w = (int)((jPanelOutput.getWidth())/ 2)-insets.left-insets.right;
int h = (int)(jPanelOutput.getHeight()/ 2)-insets.top-insets.bottom;
System.out.println(w + " " + h);
graphics.translate(w, h);
graphics.drawRect(0, 0, 1, 1);
graphics.drawOval(0, 0, 150, 150);
graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
graphics.setColor(Color.BLACK);
graphics.dispose();
但输出是: 不要担心拼写,它用荷兰语(“vlakke spiegel”表示平面镜子,“cirkel”表示圆圈。标题意味着镜像镜像法。
提前谢谢 JARI答案 0 :(得分:0)
问题是圆圈是从top_left角落绘制的。圆圈的左上角处于完美的中心位置。您需要做的就是从中心点减去圆的宽度和高度。
以下代码将以圆圈为中心。
int cw = 150;
int ch = 150;
graphics.translate(w - cw / 2, h - ch / 2);
graphics.drawRect(0, 0, 1, 1);
graphics.drawOval(0, 0, cw, ch);