在窗体内“单击鼠标左键”,在光标处绘制一个“红色圆”;窗体内“单击鼠标右键”,在光标处绘制一个“绿色方框”;窗体内“双击鼠标左键”,清空所有已画“圆”和“方”。
时间: 2023-05-15 15:05:37 浏览: 92
这是一个典型的鼠标事件处理程序,可以使用C#或者其他编程语言来实现。以下是一个简单的C#代码示例:
```csharp
private void Form1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
// 绘制红色圆
Graphics g = this.CreateGraphics();
g.FillEllipse(Brushes.Red, e.X, e.Y, 50, 50);
}
else if (e.Button == MouseButtons.Right)
{
// 绘制绿色方框
Graphics g = this.CreateGraphics();
g.FillRectangle(Brushes.Green, e.X, e.Y, 50, 50);
}
}
private void Form1_MouseDoubleClick(object sender, MouseEventArgs e)
{
// 清空所有已画“圆”和“方”
Graphics g = this.CreateGraphics();
g.Clear(this.BackColor);
}
```
这段代码实现了在窗体内单击鼠标左键绘制红色圆,单击鼠标右键绘制绿色方框,双击鼠标左键清空所有已画“圆”和“方”的功能。
相关问题
JAVA GUI 在窗体内“单击鼠标左键”,在光标处绘制一个“红色圆”;窗体内“单击鼠标右键”,在光标处绘制一个“绿色方框”;窗体内“双击鼠标左键”,清空所有已画“圆”和“方”。
您可以使用Java的AWT和Swing库来实现这个功能。首先,您需要创建一个继承自JFrame的窗体,并在其中添加一个MouseListener来监听鼠标事件。然后,您可以在MouseListener的回调函数中实现绘制图形的逻辑。
以下是一个简单的示例代码:
```java
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MyFrame extends JFrame {
private JPanel panel;
public MyFrame() {
setTitle("Draw Shapes");
setSize(400, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel = new JPanel() {
private Color color = Color.RED;
private int x, y;
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
if (color == Color.RED) {
g.setColor(Color.RED);
g.fillOval(x, y, 50, 50);
} else if (color == Color.GREEN) {
g.setColor(Color.GREEN);
g.fillRect(x, y, 50, 50);
}
}
};
panel.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if (e.getButton() == MouseEvent.BUTTON1) {
if (e.getClickCount() == 1) {
panel.color = Color.RED;
panel.x = e.getX();
panel.y = e.getY();
panel.repaint();
} else if (e.getClickCount() == 2) {
panel.color = null;
panel.repaint();
}
} else if (e.getButton() == MouseEvent.BUTTON3) {
panel.color = Color.GREEN;
panel.x = e.getX();
panel.y = e.getY();
panel.repaint();
}
}
});
add(panel);
}
public static void main(String[] args) {
MyFrame frame = new MyFrame();
frame.setVisible(true);
}
}
```
在这个示例代码中,我们创建了一个JPanel来绘制图形,并在MouseListener的回调函数中根据鼠标事件的类型和次数来设置颜色和位置,并调用repaint()方法来触发重绘。在paintComponent()方法中,我们根据颜色来绘制圆或方框。当双击鼠标左键时,我们将颜色设置为null,以清空所有已画的图形。
7.编写java程序,创建一个窗体,并实现交互。在窗体内“单击鼠标左键”,在光标处绘制一个“绿圆”;窗体内“单击鼠标右键”,在光标处绘制一个“红色方框”;窗体内“双击鼠标左键”,清空所有已画“圆”和“方”。
题目要求编写一个Java程序,创建一个窗体,并实现交互。在窗体内“单击鼠标左键”,在光标处绘制一个“绿色圆”;在窗体内“单击鼠标右键”,在光标处绘制一个“红色方框”;在窗体内“双击鼠标左键”,清空所有已画“圆”和“方”。
阅读全文