如何将application改成applet,求applet代码,讲解 本帖最后由 GodHelpRay 于 2010-11-01 21:02:21 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 改好改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动作符合权限 来讲解一下吧。改动的第一点:将JFrame父类改为JApplet父类,JApplet也是Swing包中的类,如果改成Applet父类,那就是AWT中的类,改动量就会大一点。改动的第二点:JApplet不需要main方法来运行它,浏览器负责调用Applet的init方法来初始化Applet。Init方法中,需要将原先在main方法中调用的go方法调用一下。改动的第三点:JApplet是浏览器来关闭它,不需要自己关闭自己,所以关闭相关的代码可以删除。 java中怎样判断一个文件是否被打开? 接口实现错误 java Properties IO问题 单步调试的问题 判断字符串中是否含某个字符,提示了java.lang.NullPointerException 倒序得到字符的开始位置 时间问题 关于java2种的事件监听问题 请问哪里有RHINO比较详细的中文资料 Java初学者的问题 请问下怎么用javadoc生成UML类图? 在eclipse下怎么导入项目源代码?
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动作符合权限
改动的第一点:将JFrame父类改为JApplet父类,JApplet也是Swing包中的类,如果改成Applet父类,那就是AWT中的类,改动量就会大一点。
改动的第二点:JApplet不需要main方法来运行它,浏览器负责调用Applet的init方法来初始化Applet。Init方法中,需要将原先在main方法中调用的go方法调用一下。
改动的第三点:JApplet是浏览器来关闭它,不需要自己关闭自己,所以关闭相关的代码可以删除。