【发布时间】:2015-04-24 09:28:29
【问题描述】:
我有一个 Java 项目(使用 Eclipse 开发),其中我使用了一些 Swing 组件。一开始,我使用 JFrame:我创建了一个继承自 JPanel (PanelTr) 的新类,在其中添加了我的 JLabels、JTextField 和 JButton,并在我的按钮上添加了一个 ActionListener,并将一个对象 PanelTr 添加到我的 JFrame 继承的类中。这是我的一段代码:
package gui;
public class PanelTr extends JPanel implements ActionListener {
// Here I instantiate my JTextField and JButton used by ActionListener
private JTextField textCap = new JTextField(20);
private JButton submitButton = new JButton("Submit");
public PanelTr() {
// Here I add my JLabels and my layout manager
submitButton.addActionListener(this);
}
public void actionPerformed(ActionEvent evt)
{
if (evt.getSource()==submitButton)
{
JOptionPane.showMessageDialog(null,"DEBUG"); // Just to see if it is displayed
String err = Analyzer.process(textCap.getText().toString()); // An analyzing process I use in my program
if (err=="")
{
JOptionPane.showMessageDialog(null,"OK");
}
else
{
JOptionPane.showMessageDialog(null,err,"Error",JOptionPane.ERROR_MESSAGE);
}
}
}
}
还有我的 JFrame:
package gui;
public class FrameTr extends JFrame
{
public FrameTr()
{
PanelFils ctn = new PanelFils(); //Conteneur
setContentPane(ctn);
ctn.setBackground(new Color(0,255,255));
setTitle("Project");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String args[])
{
new FrameTr();
}
}
在我的 Analyzer 类中,我使用了位于项目根文件夹中的几个 Excel 文件。
因此,使用此代码,我的程序在 Eclipse 上运行良好,当我将其导出到可运行的 jar 中时(我将 Excel 文件放在 .jar 文件的同一文件夹中)。
但现在我需要制作一个 Applet,它允许程序在 Web 浏览器上运行。所以我只用这段代码创建了一个新的基于 JApplet 的类:
package gui;
public class TestApplet extends JApplet{
public void init()
{
PanelTr ctn = new PanelTr();
setContentPane(ctn);
}
}
当我在 Eclipse 上运行这个类时,会显示我的 debug JOptionPane,但在分析过程中,我的第一个 Excel 文件出现 FileNotFoundException。我试图将它移动到 src 文件夹,gui 文件夹,甚至 analysis 文件夹(我的 Analyzer 类),但仍然是这个 FileNotFoundException...
我还尝试在网页中运行我的程序,因此我导出为可运行的 jar(注意:我无法在启动配置中选择 TestApplet,因为它没有 main( ),所以我选择了 FrameTr)。我使用了标签:
<applet archive="app.jar" width="700" height="100" code="gui/TestApplet.class"/>
显示了我的窗格,但是当我单击按钮时,调试 JOptionPane 没有弹出!
首先,我该如何解决 FileNotFound 问题?然后,为什么我的 JOptionPane 没有显示在我的网络浏览器上?
【问题讨论】:
-
你是如何加载文件的?
-
小程序在沙箱中运行,对您的计算机的访问权限有限。你确定它可以访问这些文件吗?
-
@MrWiggles 我用
FileInputStream file = new FileInputStream(new File("Countries.xlsx"));加载文件,然后我用Apache POI 处理它,它与JFrame 配合得很好。 :) -
@TimB 在eclipse上我把文件放在根文件夹中,在我的网络服务器上,文件与jar在同一个文件夹中。
-
确保Java Console 配置为显示。如果默认级别没有输出,提升级别再试一次。
标签: java eclipse swing jframe japplet