如何在窗口最大化或最小化时绘制可调整大小的圆圈?我所拥有的代码甚至不像我希望的那样绘制圆圈。任何有关这方面的帮助都将非常感激,因为我之前从未使用过Java中的图形,Oracle网站只对我这么做了很多帮助。感谢。
public class GUI extends JFrame {
public GUI() {
JPanel p1 = new JPanel();
}
public void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.drawOval(0, 0, 50, 50);
}
public static void main(String[] args) {
GUI frame = new GUI();
frame.setTitle("Circle Generator");
frame.setSize(400, 300);
frame.setLocationRelativeTo(null); // Center the frame
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
答案 0 :(得分:2)
要使绘画动态化,您需要获取面板的当前宽度/高度。
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
//g2d.drawOval(0, 0, 50, 50);
g2d.drawOval(0, 0, getWidth(), getHeight());
}
您还需要super.paintComponent(g)来清除面板的背景。
编辑:
实际上,我仔细研究了你的代码,但什么也没做。 JFrame没有paintComponent()方法,因此您的代码永远不会被执行。此外,您创建一个面板,但随后不做任何事情。
首先阅读Custom Painting上Swing教程中的部分,了解更多信息和工作示例。
然后,您可以使用上面的建议修改教程中的示例来绘制椭圆。