根据 if/else 语句和动作侦听器在 Java 中绘制形状
Draw shapes in Java based off if/else statements and action listener
我想弄清楚是否有任何方法可以根据 if/else 语句或使用 [=14] 来绘制图像(drawRect()
、drawOval()
等) =].
我不想 post 完整的问题,因为这是一个作业,但对于我自己的场景:
如果我在 JPanel
上有一个名为“draw rectangle”的按钮,并且我有来自用户输入的 x、y、宽度和高度,有什么方法可以将 actionListener 附加到“draw rectangle”,可以使用这些值(通过引用传递?)以某种方式绘制矩形。
我知道我可以使用 paintComponent
,但我不能将其放入 ActionListener
,它似乎是按照自己的意愿行事,而不是基于特定用户的操作。
我真的没有任何代码,因为我根本不知道该怎么做。
If I have a button on a
JPanel
named "draw rectangle" and I have the
x, y, width, and height from user input, is there any way I can attach
an actionListener to "draw rectangle" that could somehow draw the
rectangle using those values (passed by reference?).
简短的回答是肯定的。
通常,您需要将矩形指令保存在模型中,并在按下任何形状按钮时JPanel
重新绘制模型。
让我们以矩形为例。在 JPanel
上绘制矩形需要知道什么?您需要一个起点(左上)和一个终点(右下)。您可以使用 java.awt.Point
来保存起点和终点。您可以设置线条的粗细,以像素为单位。您可以使用 JColorChooser
设置矩形的颜色。您还可以将矩形设置为轮廓或填充所选颜色。
直线和三角形的描述类似。圆有点不同,它有一个圆心和一个半径。如您所见,我们已经有了很多信息可以跟踪这些简单的几何形状。
然后是绘图表面本身的问题。绘图表面可能比您的计算机屏幕可以显示的更大。您可以将绘图表面放在 JScrollPane
.
内
必须确定所有这些事情,以便您可以构建应用程序模型。在使用 Swing 组件构建视图和使用动作侦听器构建控制器之前执行此操作。
我想弄清楚是否有任何方法可以根据 if/else 语句或使用 [=14] 来绘制图像(drawRect()
、drawOval()
等) =].
我不想 post 完整的问题,因为这是一个作业,但对于我自己的场景:
如果我在 JPanel
上有一个名为“draw rectangle”的按钮,并且我有来自用户输入的 x、y、宽度和高度,有什么方法可以将 actionListener 附加到“draw rectangle”,可以使用这些值(通过引用传递?)以某种方式绘制矩形。
我知道我可以使用 paintComponent
,但我不能将其放入 ActionListener
,它似乎是按照自己的意愿行事,而不是基于特定用户的操作。
我真的没有任何代码,因为我根本不知道该怎么做。
If I have a button on a
JPanel
named "draw rectangle" and I have the x, y, width, and height from user input, is there any way I can attach an actionListener to "draw rectangle" that could somehow draw the rectangle using those values (passed by reference?).
简短的回答是肯定的。
通常,您需要将矩形指令保存在模型中,并在按下任何形状按钮时JPanel
重新绘制模型。
让我们以矩形为例。在 JPanel
上绘制矩形需要知道什么?您需要一个起点(左上)和一个终点(右下)。您可以使用 java.awt.Point
来保存起点和终点。您可以设置线条的粗细,以像素为单位。您可以使用 JColorChooser
设置矩形的颜色。您还可以将矩形设置为轮廓或填充所选颜色。
直线和三角形的描述类似。圆有点不同,它有一个圆心和一个半径。如您所见,我们已经有了很多信息可以跟踪这些简单的几何形状。
然后是绘图表面本身的问题。绘图表面可能比您的计算机屏幕可以显示的更大。您可以将绘图表面放在 JScrollPane
.
必须确定所有这些事情,以便您可以构建应用程序模型。在使用 Swing 组件构建视图和使用动作侦听器构建控制器之前执行此操作。