You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java图形库柱状图代码修复求助:Label与main方法错误

修复Java AWT柱状图代码的问题

嘿,我帮你把代码里的问题都搞定啦!你之前的代码主要有两个核心问题:一是直接调用了不存在的addLabel方法,二是缺少能正确启动窗口的main方法,连基本的窗口初始化逻辑都没做好。下面是修复后的完整代码,还帮你加了基础的柱状图绘制逻辑:

import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Label;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class BarChart extends Frame {

    // 自定义addLabel方法,用来创建并添加标签到指定位置
    private void addLabel(String text, int x, int y) {
        Label label = new Label(text);
        label.setLocation(x, y);
        label.setSize(50, 20); // 设置标签大小,保证文字能完整显示
        this.add(label);
    }

    // 重写paint方法绘制柱状图的坐标轴和柱子
    @Override
    public void paint(Graphics g) {
        // 绘制X轴和Y轴
        g.drawLine(50, 350, 350, 350);
        g.drawLine(50, 50, 50, 350);

        // 绘制不同颜色的柱子
        g.setColor(Color.BLUE);
        g.fillRect(80, 250, 60, 100); // 柱子A
        g.setColor(Color.RED);
        g.fillRect(160, 200, 60, 150); // 柱子B
        g.setColor(Color.GREEN);
        g.fillRect(240, 180, 60, 170); // 柱子C
    }

    public BarChart() {
        // 初始化窗口基本属性
        this.setTitle("柱状图");
        this.setSize(400, 400);
        this.setLayout(null); // 用绝对布局方便手动定位组件

        // 添加各个标签
        addLabel("A", 90, 360);
        addLabel("B", 170, 360);
        addLabel("C", 250, 360);
        addLabel("数值", 10, 150);

        // 添加窗口关闭事件,关闭窗口时退出程序
        this.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }

    // 正确的main方法,作为程序入口启动窗口
    public static void main(String[] args) {
        BarChart chart = new BarChart();
        chart.setVisible(true);
    }
}

给你拆解下关键的修复点:

  • 实现addLabel方法:你之前直接调用这个方法但没定义,现在我们自己写了这个工具方法,帮你快速创建并定位标签。
  • 完善main方法:现在有了标准的程序入口,创建窗口实例并设置可见,还加了窗口关闭的逻辑,避免关闭窗口后程序还在后台跑。
  • 添加柱状图绘制逻辑:重写了Frame的paint方法,用AWT的Graphics类绘制了坐标轴和彩色柱子,这是AWT绘制图形的标准方式。
  • 窗口布局调整:用绝对布局来手动放置标签,确保标签能精准对应到柱子下方和坐标轴旁边。

内容的提问来源于stack exchange,提问作者coco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:10:36