[英]Reading a file from Java Swing
我在寻找结构建议而不是特定的编码。 我的程序有一个Main类,该类初始化一个GUI,然后在放置将要读取的文件的名称之后,单击一个按钮。 我在侦听器上附加了相应的mouseClicked事件处理程序,并在该处理程序内执行了所有例程。
这似乎不是一个好方法,是吗? 这样行事通常吗? 我所有的程序都在事件处理程序中吗?
这样行事通常吗?
UI编程是基于事件的 Swing。 将其扭曲为其他任何样式都不会令您更轻松。 您可能要说的是,您应该最小化该UI部分中的代码。
这意味着您不应该将UI绑定到逻辑上,因此会造成密集耦合。 在此示例中,应将文件读取代码移到另一个方法中,最好是在另一个类中。
我所有的程序都在事件处理程序中吗?
要回答这个特定问题:不,那太可怕了! 可以从那里调用程序,但是不要在事件处理程序中编写代码!
这似乎不是一个好方法,是吗? 这样行事通常吗? 我所有的程序都在事件处理程序中吗?
没错,这不是一个好方法。 相反,应考虑实现模型-视图-控件(MVC)类型的结构或其变体之一。
没有规则 ,只有好的做法 。 并且从良好实践道德出发,始终建议您将代码分成小块,每个块负责一些工作。
因此,您最好将代码移到事件处理程序之外,并将作业委托给称为readFiles()
方法,然后在处理程序中调用后者。
即使此方法可以切成小块,您也可以执行相同的操作,例如,它只能遍历要读取的文件并为每个文件调用readFile()
方法:
private void readFiles(Files[] files)
{
for(File file : files)
{
readFile(file);
}
}
只是一个简单的代码片段,所有内容都应进行更新以遵循您的模型。
JFileChooser
进行文件选择操作,而不是提供文件路径。 特别是因为您正在使用Swing
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.