高分悬赏:怎样把一个jframe程序转为applet程序?解决办法
高分悬赏:怎样把一个jframe程序转为applet程序?
问题描述:有一个算法程序(内存消耗比较大),用的Jframe框架。
现在想把它放到网上,给别人用。
解决办法:提供一个.class文件,使别人可以把它下载下来使用。
这样就要把这个程序变为applet程序,
问题:1.请问可以把它嵌到applet中吗?
2.如果不可以,能否提出一个新的解决办法?
3.如果有热心人,我可以把代码拿出来,请高手帮忙弄的。
------解决方案--------------------
既然是下载下来后使用,使用 JFrame 也应该是可以
要改成Applet,需要将 JFrame 替换,稍作改动就可以了,即把 JFrame 下的Pane,添加到 Applet中
------解决方案--------------------
如果你的Applet放在网上,其他人可以通过网络访问来执行,不需主动下载
网上的程序你可以随时修改、更新
------解决方案--------------------
看我的列子:
applet文件类
问题描述:有一个算法程序(内存消耗比较大),用的Jframe框架。
现在想把它放到网上,给别人用。
解决办法:提供一个.class文件,使别人可以把它下载下来使用。
这样就要把这个程序变为applet程序,
问题:1.请问可以把它嵌到applet中吗?
2.如果不可以,能否提出一个新的解决办法?
3.如果有热心人,我可以把代码拿出来,请高手帮忙弄的。
------解决方案--------------------
既然是下载下来后使用,使用 JFrame 也应该是可以
要改成Applet,需要将 JFrame 替换,稍作改动就可以了,即把 JFrame 下的Pane,添加到 Applet中
------解决方案--------------------
如果你的Applet放在网上,其他人可以通过网络访问来执行,不需主动下载
网上的程序你可以随时修改、更新
------解决方案--------------------
看我的列子:
applet文件类
- Java code
/** @version 1.32 2004-07-27 @author Cay Horstmann */ import java.applet.Applet; import java.awt.*; import java.awt.event.*; import java.awt.geom.*; import java.util.*; import javax.swing.*; /** Shows an animated bouncing ball. */ public class BounceThread extends Applet { public BounceThread() { JFrame frame = new BounceFrame(); // frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } /** A runnable that animates a bouncing ball. */ class BallRunnable implements Runnable { /** Constructs the runnable. @aBall the ball to bounce @aPanel the component in which the ball bounces */ public BallRunnable(Ball aBall, Component aComponent) { ball = aBall; component = aComponent; } public void run() { try { for (int i = 1; i <= STEPS; i++) { ball.move(component.getBounds()); component.repaint(); Thread.sleep(DELAY); } } catch (InterruptedException e) { System.out.println("被中断了"); } } private Ball ball; private Component component; public static final int STEPS = 1000; public static final int DELAY = 5; } /** A ball that moves and bounces off the edges of a rectangle */ class Ball { /** Moves the ball to the next position, reversing direction if it hits one of the edges */ public void move(Rectangle2D bounds) { x += dx; y += dy; if (x < bounds.getMinX()) { x = bounds.getMinX(); dx = -dx; } if (x + XSIZE >= bounds.getMaxX()) { x = bounds.getMaxX() - XSIZE; dx = -dx; } if (y < bounds.getMinY()) { y = bounds.getMinY(); dy = -dy; } if (y + YSIZE >= bounds.getMaxY()) { y = bounds.getMaxY() - YSIZE; dy = -dy; } } /** Gets the shape of the ball at its current position. */ public Ellipse2D getShape() { return new Ellipse2D.Double(x, y, XSIZE, YSIZE); } private static final int XSIZE = 15; private static final int YSIZE = 15; private double x = 0; private double y = 0; private double dx = 1; private double dy = 1; } /** The panel that draws the balls. */ class BallPanel extends JPanel { /** Add a ball to the panel. @param b the ball to add */ public void add(Ball b) { balls.add(b); } public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2 = (Graphics2D) g; for (Ball b : balls) { g2.fill(b.getShape()); } } private ArrayList<Ball> balls = new ArrayList<Ball>(); } /** The frame with panel and buttons. */ class BounceFrame extends JFrame { /** Constructs the frame with the panel for showing the bouncing ball and Start and Close buttons */ public BounceFrame() { setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT); setTitle("BounceThread"); panel = new BallPanel(); add(panel, BorderLayout.CENTER); JPanel buttonPanel = new JPanel(); addButton(buttonPanel, "Start", new ActionListener() { public void actionPerformed(ActionEvent event) { addBall(); } }); addButton(buttonPanel, "Close", new ActionListener() { public void actionPerformed(ActionEvent event) { System.exit(0); } }); add(buttonPanel, BorderLayout.SOUTH); } /** Adds a button to a container. @param c the container @param title the button title @param listener the action listener for the button */ public void addButton(Container c, String title, ActionListener listener) { JButton button = new JButton(title); c.add(button); button.addActionListener(listener); } /** Adds a bouncing ball to the canvas and starts a thread to make it bounce */ public void addBall() { Ball b = new Ball(); panel.add(b); Runnable r = new BallRunnable(b, panel); Thread t = new Thread(r); t.start(); } private BallPanel panel; public static final int DEFAULT_WIDTH = 450; public static final int DEFAULT_HEIGHT = 350; public static final int STEPS = 1000; public static final int DELAY = 3; }