本帖最后由 GodHelpRay 于 2010-11-01 21:02:21 编辑

解决方案 »

  1.   

    改好改
    import javax.swing.*;import java.awt.*;
    import java.awt.event.*;import java.io.*;public class MySumCalculator extends JApplet {
    private static final long serialVersionUID = -9037075068022027885L;
    int sum; 
    JTextArea textarea;
    JTextField numberTextField; @Override
    public void init() {
    sum = 0;
    go();
    } public void go() { textarea = new JTextArea();
    this.getContentPane().add(BorderLayout.CENTER, textarea); numberTextField = new JTextField(16);
    JButton addButton = new JButton("Add");
    JButton saveButton = new JButton("Save"); JPanel controlPanel = new JPanel();
    controlPanel.setLayout(new BorderLayout());
    controlPanel.add(BorderLayout.WEST, new JLabel("Integer: "));
    controlPanel.add(BorderLayout.CENTER, numberTextField); JPanel buttonPanel = new JPanel();
    buttonPanel.setLayout(new GridLayout(1, 2));
    buttonPanel.add(addButton);
    buttonPanel.add(saveButton); controlPanel.add(BorderLayout.EAST, buttonPanel); this.getContentPane().add(BorderLayout.SOUTH, controlPanel);
    addButton.addActionListener(new ActionListener() { @Override
    public void actionPerformed(ActionEvent arg0) {
    // TODO Auto-generated method stub
    try {
    int number = Integer.parseInt(numberTextField.getText());
    int orisum = sum;
    sum += number;
    textarea.append(orisum + " + " + number + " = " + sum
    + "\n");
    } catch (NumberFormatException nfe) { // do nothing }
    numberTextField.setText(""); } });
    saveButton.addActionListener(new SaveButtonListener()); this.setSize(300, 160);
    this.setVisible(true); } public class SaveButtonListener implements ActionListener {
    /*
     * (non-Javadoc)
     * 
     * @see
     * java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent
     * )
     */
    public void actionPerformed(ActionEvent e) {
    FileWriter writer = null;
    try {
    writer = new FileWriter("log.txt");
    textarea.write(writer);
    writer.close();
    } catch (Exception e1) {
    e1.printStackTrace();
    }
    }
    }}
    你需要面对的一个问题是真的跑在浏览器里的时候怎么让save动作符合权限
      

  2.   

    来讲解一下吧。
    改动的第一点:将JFrame父类改为JApplet父类,JApplet也是Swing包中的类,如果改成Applet父类,那就是AWT中的类,改动量就会大一点。
    改动的第二点:JApplet不需要main方法来运行它,浏览器负责调用Applet的init方法来初始化Applet。Init方法中,需要将原先在main方法中调用的go方法调用一下。
    改动的第三点:JApplet是浏览器来关闭它,不需要自己关闭自己,所以关闭相关的代码可以删除。