我正在尝试使用 Graphics2D 在 JFrame 上绘制一个椭圆形,我希望它随窗口调整大小,从技术上讲它确实如此,它只是不绘制大约三分之一的椭圆形。这肯定是我做错了,我是 Java 的 Graphics2D 部分的新手。
我不确定这是否是我的电脑的问题,所以我尝试在另一台电脑上运行我的代码以再次发生这种情况,所以我不确定我哪里出了问题。
import javax.swing.*;
import java.awt.*;
public class ClockViewer {
public static void main(String[] args) {
//create frame
JFrame frame = new JFrame();
final int Frame_Width = 110;
final int Frame_Height = 130;
//set frame attributes
frame.setSize(Frame_Width, Frame_Height);
frame.setTitle("A Really Descriptive Title...");
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//get pane attributes
System.out.println(frame.getContentPane().getWidth());
System.out.println(frame.getContentPane().getHeight());
//create ellipse
EllipseComponent ellipse = new EllipseComponent();
//add ellipse to frame
while(frame.getContentPane().getHeight() > 0 && frame.getContentPane().getWidth() > 0) {
int posX = Math.round(frame.getContentPane().getWidth() / 100) * 20;
int posY = Math.round(frame.getContentPane().getHeight() / 100) * 20;
int Width = Math.round(frame.getContentPane().getWidth() / 100) * 80;
int Height = Math.round(frame.getContentPane().getHeight() / 100) * 80;
ellipse.setAll(posX, posY, Width, Height);
frame.add(ellipse);
}
}
}
这是下一个文件:
import javax.swing.*;
import java.awt.*;
import java.awt.geom.*;
public class EllipseComponent extends JComponent {
//global variables for ellipse drawing
int posX = 0;
int posY = 0;
int Width = 0;
int Height = 0;
//getters for getting variables values
public int getPosX() {
return this.posX;
}
public int getPosY() {
return this.posY;
}
感谢大家为我提供的帮助^^
慕工程0101907
相关分类