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

我用jfree做出了x=-2t*sin(t*t)的离散图像,但是想在里面添加按钮更改△t的值,出错了求解?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
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
类创建了一个条形图,并设置了颜色、字体等属性。解决 无用评论 打赏 举报