Java AWT下如何将Choice选中值转整数传入fillOval方法参数
AWT Applet 椭圆绘制传参错误修正
现有代码的核心问题
- 括号位置错位导致方法参数不匹配:
fillOval方法要求传入4个固定参数:椭圆起点X坐标、起点Y坐标、椭圆宽度、椭圆高度。原有代码错误把宽度、高度的计算逻辑嵌套到了Integer.parseInt的参数内部,既没有给fillOval传够参数,也触发了语法编译错误。 - 对
Integer.parseInt的方法签名使用错误:Integer.parseInt(String)是单参数方法,仅接收需要转换的数字字符串,返回对应十进制整数;带两个参数的重载方法parseInt(String, int radix)第二个参数是指定转换的进制(如10代表十进制),不能用来接收第二个需要转换的字符串值。
修正后可运行的代码逻辑
public void mousePressed(MouseEvent e){ Graphics stift = getGraphics(); // 提前将下拉框选中的字符串值转换为整数尺寸 int ovalSize = Integer.parseInt(freeSize.getSelectedItem()); // 按fillOval的参数要求完整传入坐标、宽度、高度 stift.fillOval(e.getX(), e.getY(), ovalSize, ovalSize); }
实际使用注意事项
- 上述实现中因为画笔尺寸是统一值,所以椭圆的宽度和高度都使用转换后的选中值,绘制出等轴的正圆形效果;如果后续需要实现宽高不等的椭圆,分别获取对应值转换后传入宽、高位置即可。
- 建议增加基础健壮性校验:确保
freeSize下拉框的所有选项都是合法的正整数字符串,避免运行时抛出数字格式异常导致Applet崩溃。
内容的提问来源于stack exchange,提问作者Steven Vetter
相关产品推荐
相关产品推荐

