import javax.swing.; import java.awt.; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;

class DrawingApp extends JFrame implements ActionListener { private JPanel drawingPanel; private JButton lineButton, ellipseButton, rectangleButton, polygonButton; private int shapeType = 0; // 0: 直线, 1: 椭圆, 2: 矩形, 3: 多边形

public DrawingApp() {
    setTitle('Drawing App');
    setSize(500, 500);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    // 创建菜单栏
    JMenuBar menuBar = new JMenuBar();
    setJMenuBar(menuBar);

    // 创建图形菜单
    JMenu shapeMenu = new JMenu('图形');
    menuBar.add(shapeMenu);

    // 创建直线菜单项
    JMenuItem lineMenuItem = new JMenuItem('直线');
    lineMenuItem.addActionListener(this);
    shapeMenu.add(lineMenuItem);

    // 创建椭圆菜单项
    JMenuItem ellipseMenuItem = new JMenuItem('椭圆');
    ellipseMenuItem.addActionListener(this);
    shapeMenu.add(ellipseMenuItem);

    // 创建矩形菜单项
    JMenuItem rectangleMenuItem = new JMenuItem('矩形');
    rectangleMenuItem.addActionListener(this);
    shapeMenu.add(rectangleMenuItem);

    // 创建多边形菜单项
    JMenuItem polygonMenuItem = new JMenuItem('多边形');
    polygonMenuItem.addActionListener(this);
    shapeMenu.add(polygonMenuItem);

    // 创建绘图面板
    drawingPanel = new JPanel();
    add(drawingPanel, BorderLayout.CENTER);

    // 创建按钮面板
    JPanel buttonPanel = new JPanel();
    add(buttonPanel, BorderLayout.SOUTH);

    // 创建直线按钮
    lineButton = new JButton('直线');
    lineButton.addActionListener(this);
    buttonPanel.add(lineButton);

    // 创建椭圆按钮
    ellipseButton = new JButton('椭圆');
    ellipseButton.addActionListener(this);
    buttonPanel.add(ellipseButton);

    // 创建矩形按钮
    rectangleButton = new JButton('矩形');
    rectangleButton.addActionListener(this);
    buttonPanel.add(rectangleButton);

    // 创建多边形按钮
    polygonButton = new JButton('多边形');
    polygonButton.addActionListener(this);
    buttonPanel.add(polygonButton);
}

public void actionPerformed(ActionEvent e) {
    if (e.getSource() instanceof JMenuItem) { // 菜单项被点击
        JMenuItem menuItem = (JMenuItem) e.getSource();
        String shape = menuItem.getText();

        if (shape.equals('直线')) {
            shapeType = 0;
        } else if (shape.equals('椭圆')) {
            shapeType = 1;
        } else if (shape.equals('矩形')) {
            shapeType = 2;
        } else if (shape.equals('多边形')) {
            shapeType = 3;
        }
    } else if (e.getSource() instanceof JButton) { // 按钮被点击
        JButton button = (JButton) e.getSource();
        String shape = button.getText();

        if (shape.equals('直线')) {
            shapeType = 0;
        } else if (shape.equals('椭圆')) {
            shapeType = 1;
        } else if (shape.equals('矩形')) {
            shapeType = 2;
        } else if (shape.equals('多边形')) {
            shapeType = 3;
        }
    }

    drawingPanel.repaint();
}

public void paint(Graphics g) {
    super.paint(g);

    if (shapeType == 0) {
        g.drawLine(50, 50, 200, 200);
    } else if (shapeType == 1) {
        g.drawOval(50, 50, 150, 100);
    } else if (shapeType == 2) {
        g.drawRect(50, 50, 150, 100);
    } else if (shapeType == 3) {
        int[] xPoints = {100, 150, 200, 150};
        int[] yPoints = {100, 50, 100, 150};
        g.drawPolygon(xPoints, yPoints, 4);
    }
}

public static void main(String[] args) {
    DrawingApp app = new DrawingApp();
    app.setVisible(true);
}

}

// 这是一个简单的 Java Swing 绘图应用程序,使用菜单和按钮选择要绘制的图形(直线、椭圆、矩形、多边形),并通过图形绘制面板实时显示绘制结果。 // 代码首先创建了一个 JFrame 窗口,并添加了一个菜单栏和按钮面板。 // 在菜单栏中,创建了图形菜单,包含直线、椭圆、矩形和多边形四个菜单项。 // 在按钮面板中,创建了四个按钮,对应于菜单项中的图形。 // 用户可以通过点击菜单项或按钮来选择要绘制的图形,程序会将选择的图形类型保存到 shapeType 变量中。 // 在 paint 方法中,根据 shapeType 的值绘制相应的图形。 // 最后,程序将 JFrame 窗口设置为可见,用户即可开始绘制。 // 该程序简单易懂,可以帮助用户学习 Java Swing 的基本使用方法和绘图原理。

Java Swing 绘图程序:使用菜单和按钮选择图形

原文地址: https://www.cveoy.top/t/topic/fOw8 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录