收录日期:2018/08/17 01:44:04 时间:2016/05/20 18:27:25 标签:Java EE
我设计了一个很简单的Applet。点击一个按钮(transformationButton)就会完成一个从XML到另一个XML的转化。我将这个转化过程定义为一个方法,当按下这个转化按钮的时候就会触发这个方法完成转化。这个转化过程我曾经单独测试过,工作完全正常,可以顺利地完成转化过程。但是当我把它定义为方法的时候,就出现了问题,抛出了TranformerException的错误,我真的不知道是那里发生了问题,也测试不出来,请高手帮我指点一下!谢谢了!

下面是程序的代码:

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;

import java.io.FileOutputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;


public class Interface extends JApplet
{
String[] birdname ={"", "chaffinch", "barn_swallow"};

JPanel jPanel1 = new JPanel();
JLabel jLabel1 = new JLabel();
JComboBox birdBox = new JComboBox(birdname);
JButton transformButton = new JButton("Transform");
JTextField text = new JTextField(30);

//Initialize the applet
public void init()

{
try
{
jbInit();
}
catch(Exception e)
{
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception
{
birdBox.setSelectedIndex(0);

this.setSize(new Dimension(400, 300));

jPanel1.setBackground(new Color(0, 83, 255));
jPanel1.setPreferredSize(new Dimension(400, 300));
jLabel1.setFont(new java.awt.Font("Dialog", 1, 12));
jLabel1.setBounds(65,55,150,25);
jLabel1.setForeground(Color.white);
jLabel1.setText("Select a Bird");
birdBox.setBackground(Color.white);
transformButton.setBounds(75,75,60,25);


this.getContentPane().add(jPanel1, BorderLayout.CENTER);
jPanel1.add (jLabel1);
jPanel1.add(birdBox);
jPanel1.add(transformButton);
jPanel1.add(text);

transformButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
try
{
Transform();
text.setText ("The Transformation is finished!");
}
catch (IOException ex)
{
  System.out.print("This is the IOException!");
}
catch (TransformerException ex)
{
  System.out.print("This is the Transform Exception!");
}
}
});
}

public void Transform() throws TransformerException, TransformerConfigurationException,
FileNotFoundException, IOException
{
//first round transformation
TransformerFactory tFactory = TransformerFactory.newInstance ();
Transformer transformer = tFactory.newTransformer (new StreamSource ("onebird.xsl"));
transformer.transform (new StreamSource ("birds_06_2_oneBird_2_xmlbackend.xml"), new StreamResult (new FileOutputStream ("chaffinch.xml")));

System.out.print ("The Transformation is finished!");

}
}
UP..
可能式xml文件格式不对,或字符集不对把
但是我已经为那段转化过程测试过了,没有问题的,可以成功的转化,证明应该不是字符集的问题。

高手指点!
Help me:(