Java 如何在JFrame中居中绘制对象?
我正在制作一个程序,在Java 如何在JFrame中居中绘制对象?,java,swing,centering,Java,Swing,Centering,我正在制作一个程序,在JFrame上画一个圆。我想用屏幕中心的圆圈来启动程序,这样即使JFrame窗口的大小改变了,它仍然居中。我该怎么做?我尝试过不同的方法,但还没有找到任何有效的方法。代码如下所示: import java.awt.Graphics; import javax.swing.JFrame; import javax.swing.JPanel; public class ImageFrame extends JFrame { private static final l
JFrame
上画一个圆。我想用屏幕中心的圆圈来启动程序,这样即使JFrame
窗口的大小改变了,它仍然居中。我该怎么做?我尝试过不同的方法,但还没有找到任何有效的方法。代码如下所示:
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class ImageFrame extends JFrame {
private static final long serialVersionUID = 1L;
int width = 40;
int height = 40;
int x = 160;
int y = 70;
JPanel panel = new JPanel() {
private static final long serialVersionUID = 1L;
public void paintComponent(Graphics g) {
super.paintComponents(g);
g.drawOval(x, y, width, height);
}
};
public ImageFrame() {
add(panel);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(400, 300);
setLocationRelativeTo(null);
setVisible(true);
}
}
这是一道简单的数学题。将容器宽度和圆
宽度的差值除以2,以确定drawOval
的x坐标。对y坐标的高度执行相同操作。如何获得容器宽度和高度?抱歉,如果这是非常简单的…正如在…最后一件事中发现的那样。即使我使JFrame全屏显示,圆是否仍应居中?这将在您尝试时显示;)