空虚沸腾 2019-04-01 20:20 采纳率: 0%
浏览 486

我用jfree做出了x=-2t*sin(t*t)的离散图像,但是想在里面添加按钮更改△t的值,出错了求解?

本来不加按钮控制的话,离散图像是好的,只是更改△t的值需要每次关掉界面去代码里改,很费事。
就想着做个按钮和文本框,通过监听器在图形化界面中改t的值,不过可能是才学jfree和gui,改的代码没起作用,文本框set大小也没用,监听也不知道有没有作用,求大佬救救我吧,纠结很久了……
(代码已删,作业请自己完成)

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-08 17:15
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    首先,你需要创建一个Java Swing应用程序来显示你的图表。然后,你可以使用JFreeChart库来创建一个图表,并且可以使用MouseListener接口来监听用户点击事件。以下是一个简单的示例:

    import java.awt.Color;
    import javax.swing.*;
    import org.jfree.chart.ChartFactory;
    import org.jfree.chart.JFreeChart;
    import org.jfree.data.category.DefaultCategoryDataset;
    
    public class Main extends JFrame {
    
        public static void main(String[] args) {
            new Main();
        }
    
        private void plot(double t, double dt) {
            DefaultCategoryDataset dataset = new DefaultCategoryDataset();
    
            // 添加数据到数据集中
            for (int i = 0; i < 100; i++) {
                dataset.addValue(Math.sin(i * i), "sin", String.valueOf(i));
            }
    
            JFreeChart chart = ChartFactory.createLineChart(
                    "My Chart",
                    "Time (s)",
                    "Value (sin(x))",
                    dataset,
                    PlotOrientation.VERTICAL,
                    true,
                    false,
                    false);
    
            // 设置图表的颜色
            chart.setBackgroundPaint(Color.WHITE);
            chart.setForegroundColor(Color.BLACK);
    
            // 设置图表标题
            chart.setTitle("My Chart");
    
            // 设置X轴标签
            chart.getXYPlot().getTickLabels().setFont(new Font("SansSerif", Font.BOLD, 14));
    
            // 设置Y轴标签
            chart.getXYPlot().setLabelAutoRotation(90);
    
            // 设置图表布局
            chart.setRenderer((renderer) -> {
                renderer.setSeriesStroke(null); // 不绘制线段
                renderer.setOutlineVisible(false); // 不绘制边框
            });
    
            // 创建一个包含按钮的面板
            JPanel buttonPanel = new JPanel() {{
                add(new JButton("Change Time"));
                add(new JTextField());
            }};
    
            // 在主面板上添加按钮面板
            getContentPane().add(buttonPanel, BorderLayout.SOUTH);
    
            // 显示图表
            pack();
            setVisible(true);
        }
    }
    

    在这个例子中,我们首先定义了一个plot方法,它接受两个参数:一个是时间t,另一个是微小的时间步长dt。然后,我们创建了一个DefaultCategoryDataset对象,并添加了一些数据点。最后,我们使用JFreeChart类创建了一个条形图,并设置了颜色、字体等属性。

    评论

报告相同问题?