这应该是一个非常简单的问题,但我似乎无法完成它,我有一段代码计算图表上的X Y点,然后将它们保存到文件中。
如果满足某个条件,我想在图表上绘制值,我使用此代码绘制图形 - http://www.kodejava.org/examples/805.html
但我不希望它要求用户指向文件位置,我只是想让它打开一个硬编码目录的文件,并自动绘制。所以基本上删除顶部的按钮并自动执行按钮的命令。
如果有人能指出我正确的方向,那将是很棒的,我是一名物理学家,而不是编码专家,所以尽可能多的帮助会非常好。
希望我能在某个时候帮助你们中的一个。
答案 0 :(得分:0)
1)在public static void main
内,正好在frame.setVisible(true);
openButton.setVisible(false);
2)在class GraphPanel
内,方法public void actionPerformed(ActionEvent e)
内插入datapanel.actionPerformed(e);
作为第一行。
3)class DataPanel
内的public void actionPerformed
内注释从JFrame fileFrame = new JFrame();
到initialized = readFile(datafile);
4)在评论之后,插入initialized = readFile(new File("path_to_data_file"));
现在,如果您打开并按下绘图,将会读取硬编码文件并绘制绘图。
哎呀,我不在乎这是否会被贬低:)。我从未接触过Java。在阅读了您的问题之后,特别是I'm a physicist not a coding expert
我首先在谷歌中搜索了如何编译和运行java文件。然后开始阅读java程序。我甚至还制作了另一个不需要按下按钮的版本,只需打开即可绘制图形。但只有在需要时才提供,然后提供。 "欢迎来到我的java尝试" :)
更新
在没有按下绘图的情况下,在GraphPanel和DataPanel中执行,并将actionPerformed
方法重命名为GraphPanel::start_working
和DataPanel::start_working
之类的其他内容现在在GraphPanel::start_working
内调用{{1}而不是之前的DataPanel::start_working
。如果是编译器cribs,请添加一些空datapanel.actionPerformed(e);
进行编译。 (也许我们可以删除actionPerformed
)现在您的流程已准备就绪,无需任何用户操作。你只需要启动它。因此,您设置implements
以隐藏绘图按钮并调用plotButton.setVisible(false);
以启动主流程。
更新
Inside GraphPanel
graphpanel.start_work();
在DataPanel内部
public void start_working() {
datapanel.start_working()
if (!datapanel.isInitialized()) {
return;
}
datapanel.refreshData();
panel.setDisplayPlot(true);
panel.update(panel.getGraphics());
frame.setSize(700, 600);
frame.setVisible(true);
frame.pack();
}
在最后5行中
public void start_working(ActionEvent e) {
initialized = readFile(new File("PATH_TO_FILE");
panel.update(panel.getGraphics());
frame.pack();
frame.setVisible(true);
}