用java 写出 用菜单和按钮来控制绘图 功能要求:实现简单绘图功能,具体要求:画直线,画空心或实心椭圆、画空心或实心矩形、画多边形(图形的位置和大小可在程序中设定)。 界面要求:用图形界面实现。
时间: 2024-04-17 18:27:51 浏览: 127
您可以使用Java的Swing库来实现图形界面,并结合菜单和按钮来控制绘图。下面是一个简单的示例代码:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class DrawingApp extends JFrame {
private JButton lineButton, ellipseButton, rectangleButton, polygonButton;
private JPanel canvasPanel;
public DrawingApp() {
setTitle("绘图应用");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500, 500);
lineButton = new JButton("画直线");
ellipseButton = new JButton("画椭圆");
rectangleButton = new JButton("画矩形");
polygonButton = new JButton("画多边形");
canvasPanel = new JPanel() {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
// 在这里根据用户选择进行绘图操作
}
};
lineButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 处理画直线的逻辑
}
});
ellipseButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 处理画椭圆的逻辑
}
});
rectangleButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 处理画矩形的逻辑
}
});
polygonButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 处理画多边形的逻辑
}
});
JPanel buttonPanel = new JPanel();
buttonPanel.add(lineButton);
buttonPanel.add(ellipseButton);
buttonPanel.add(rectangleButton);
buttonPanel.add(polygonButton);
setLayout(new BorderLayout());
add(buttonPanel, BorderLayout.NORTH);
add(canvasPanel, BorderLayout.CENTER);
setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new DrawingApp();
}
});
}
}
```
在上述代码中,我们创建了一个继承自JFrame的DrawingApp类,用于展示图形界面。在构造函数中,我们设置了窗口的标题、大小和关闭操作。然后,我们创建了按钮和画布的JPanel,并将它们添加到窗口的适当位置。为每个按钮添加了ActionListener,以便在用户点击按钮时执行相应的绘图操作。在画布的paintComponent方法中,您可以根据用户选择来绘制相应的图形。
请注意,上述代码中的注释部分需要根据具体的绘图逻辑进行实现。这只是一个示例代码,您可以根据自己的需求进行修改和扩展。
阅读全文