我正在将应用程序从独立(JFrame)转换为Applet(JApplet)。我已经将FileDialog构造函数中的参数从父框架更改为getContentPane,这不能正常工作。我得到了Cast类异常,说不能将Jpanel强制转换为Frame。
请找到SSCCE。请帮我解决这个问题。
public class SampleApplet extends JApplet{
protected JButton countryButton = new JButton("Select");
public synchronized void init()
{
this.setBounds(new Rectangle(350,350));
this.add(countryButton);
countryButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
getCountries();
getCountries();
}
});
}
protected void getCountries() {
FileDialog fileDialog_ImageIn = new FileDialog((Frame) getContentPane() ,"Select a GIF file", FileDialog.LOAD);
fileDialog_ImageIn.setVisible(true);
if (fileDialog_ImageIn.getFile() == null)
return;
else
System.out.println(fileDialog_ImageIn.getDirectory() + fileDialog_ImageIn.getFile());
}
}
答案 0 :(得分:3)
我正在将应用程序从独立(JFrame)转换为Applet(JApplet)。
不要那样做!而是使用Java Web Start从链接启动框架。它将提供更好的用户体验,并且更易于开发和部署。
JFileChooser
比基于AWT的FileDialog
更好(更易配置等)。