求大神帮忙,一个点餐系统想改写为java applet,但不知怎么改 你只需要把客户端做成 applet 即可,服务器不需要直接面对客户 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 现在问题是我不太会改,我看了下百度的,很多人是继承了java.applet,但我文件继承了Frame,java又不能多继承,真的不太会改,最重要是我完全没接触过Applet,能帮我改一下吗 package main;import game.framework.Animation;import java.applet.Applet;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Font;import java.awt.Frame;import java.awt.Graphics;import java.awt.Image;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import java.lang.Thread.State;import java.net.URL;import java.util.ArrayList;import java.util.Random;import javax.swing.JButton;import javax.swing.JPanel;//add speedboostpublic class Main extends Applet implements Runnable, KeyListener{ enum GameState { Running, Dead } static GameState state = GameState.Running;private Background bg2, bg1;private boolean restart = false; private Player player;private SpeedBoost sb1;private Image image;private Image backsprite1, backsprite2;private Image player1, dad1, dad2, dad3;private Image player2;private Image player3;private Image back1;private Image back2, endscreen;private Image back3, coin, bigcoin; private Image back4, sbimg; public Image tilebase, platform; private Block block1, block2, block3, block4;private Coin coin1, coin2, coin3, coin4, coin5;private LargeCoin bc1; //use for the base...private Dad dad;private Graphics second;private Animation playwalk, dadwalk;private URL base;private Platform plat1, plat2, plat3, plat4, plat5, plat6, plat7;public static int score = 1, coinsint = 1;public static String score2, coins = "1";public static int scorespeed = 1;public int hs1, hs2, hs3, hs4, hs5, totcoins;public String hs1s, hs2s, hs3s, hs4s, hs5s, totcoinss;public Ends ends; @Override public void init() { setSize(800, 480); setBackground(Color.WHITE); setFocusable(true); addKeyListener(this); Frame frame = (Frame) this.getParent().getParent(); frame.setTitle("Game v1.2.2"); try { base = getDocumentBase(); } catch (Exception e) { // TODO: handle exception } endscreen = getImage(base, "data/endscreen.png"); coin = getImage(base, "data/coin.png"); bigcoin = getImage(base, "data/bigcoin.png"); tilebase = getImage(base, "data/tilebase.png"); platform = getImage(base, "data/blocksmall.png"); back1 = getImage(base, "data/back1.png"); back2 = getImage(base, "data/back2.png"); back3 = getImage(base, "data/back3.png"); back4 = getImage(base, "data/back4.png");`enter code here` sbimg = getImage(base, "data/speedboost.png"); player1 = getImage(base, "data/player1.png"); player2 = getImage(base, "data/player2.png"); player3 = getImage(base, "data/player3.png"); dad1 = getImage(base, "data/dad1.png"); dad2 = getImage(base, "data/dad2.png"); dad3 = getImage(base, "data/dad3.png"); backsprite1 = back1; backsprite2 = back2; playwalk = new Animation(); playwalk.addFrame(player1, 80); playwalk.addFrame(player2, 80); playwalk.addFrame(player3, 80);dadwalk = new Animation();dadwalk.addFrame(dad1, 80);dadwalk.addFrame(dad2, 80);dadwalk.addFrame(dad3, 80); }public void animate() { playwalk.update(15); dadwalk.update(15); }@Override public void start() { state = state.Running; ends = new Ends(-3, 0); //create objects at positions @Override public void stop() { // TODO Auto-generated method stub } @Override public void destroy() { // TODO Auto-generated method stub } @Override public void run() { if (state == GameState.Running) { while (true) { //selecting sprites for the background //updates go hereif(bg1.getBgX() < -2100){ bg1.setBgX(2100);} if(bg2.getBgX() < -2100){ bg2.setBgX(2100);} //backgrounds arent working if(bg1.getBgX() > 2000){ Random rand = new Random(); int nel = rand.nextInt(4) + 1; if(nel == 1){ backsprite1 = back1; }if(nel == 2){ backsprite1 = back2; }if(nel == 3){ backsprite1 = back3; }if(nel == 4){ backsprite1 = back4; } } player.update(); dad.update(); bg1.update(); bg2.update(); coin1.update(); coin2.update(); coin3.update(); coin4.update(); coin5.update(); plat1.update(); plat2.update(); plat3.update(); plat4.update(); plat5.update(); plat6.update(); plat7.update(); if(Block.lives < 0){ state = GameState.Dead; } animate(); repaint(); try { Thread.sleep(17); } catch (InterruptedException e) { e.printStackTrace(); } } } } @Override public void update(Graphics g) { if (image == null) { image = createImage(this.getWidth(), this.getHeight()); second = image.getGraphics(); } second.setColor(getBackground()); second.fillRect(0, 0, getWidth(), getHeight()); second.setColor(getForeground()); paint(second); g.drawImage(image, 0, 0, this); } @Override public void paint(Graphics g) { if (state == GameState.Running) { //main graphics identifyers here // first are drawn below last //need to make the platform lower down, see class for explanation g.drawImage(backsprite1, bg1.getBgX(), bg1.getBgY(), this); g.drawImage(backsprite2, bg2.getBgX(), bg2.getBgY(), this); g.drawImage(playwalk.getImage(), player.getCenterX(), player.getCenterY(), this); g.drawImage(platform, plat1.getCenterX(), plat1.getCenterY(), this); g.drawImage(platform, plat2.getCenterX(), plat2.getCenterY(), this); g.drawImage(platform, plat3.getCenterX(), plat3.getCenterY(), this); g.drawImage(platform, plat4.getCenterX(), plat4.getCenterY(), this); g.drawImage(platform, plat5.getCenterX(), plat5.getCenterY(), this); g.drawImage(platform, plat6.getCenterX(), plat6.getCenterY(), this); g.drawImage(platform, plat7.getCenterX(), plat7.getCenterY(), this); g.drawImage(sbimg, sb1.getCenterX(), sb1.getCenterY(), this); g.drawImage(bigcoin, bc1.centerX, bc1.centerY, this); g.drawImage(dadwalk.getImage(), dad.centerX, dad.centerY, this); g.drawImage(tilebase, block1.getCenterX(), block1.getCenterY(), this); g.drawImage(tilebase, block2.getCenterX(), block2.getCenterY(), this); g.drawImage(tilebase, block3.getCenterX(), block3.getCenterY(), this); g.drawImage(tilebase, block4.getCenterX(), block4.getCenterY(), this); g.drawImage(coin, coin1.getCenterX(), coin1.getCenterY(), this); g.drawImage(coin, coin2.getCenterX(), coin2.getCenterY(), this); g.drawImage(coin, coin3.getCenterX(), coin3.getCenterY(), this); g.drawImage(coin, coin4.getCenterX(), coin4.getCenterY(), this); g.drawImage(coin, coin5.getCenterX(), coin5.getCenterY(), this); g.setColor(Color.MAGENTA); g.drawString(score2, 700, 25); Font font = new Font("Serif", Font.PLAIN, 36); g.setFont(font); g.drawString(coins, 20, 25); }else if (state == GameState.Dead) { totcoins += coinsint; coinsint = 0; hs1s = String.valueOf(hs1); hs2s = String.valueOf(hs2); hs3s = String.valueOf(hs3); hs4s = String.valueOf(hs4); hs5s = String.valueOf(hs5); totcoinss = String.valueOf(totcoins); if(score > hs1){ hs1 = score; }else if(score > hs2){ hs2 = score; }else if(score > hs3){ hs3 = score; }else if(score > hs4){ hs4 = score; }else if(score > hs5){ hs5 = score; } scorespeed = 0; //format this shit up in here //when restart is init, then this will be tested g.setColor(Color.BLACK); g.fillRect(0, 0, 800, 480); g.setColor(Color.WHITE); g.drawString(hs1s, 230, 220); g.drawString(hs2s, 230, 250); g.drawString(hs3s, 230, 280); g.drawString(hs4s, 230, 310); g.drawString(hs5s, 230, 340); g.drawString(totcoinss, 700, 100); g.drawImage(endscreen, ends.cornX, ends.cornY, this); } } //fix the android stuff}参照这个试试 Quote: 引用 8 楼 defonds 的回复:但是我的class继承了frame,java不能多继承,那applet怎么继承,还是不懂 版主,能改出来么,我自己今天弄了一早上还是不行对不起版主,有个小问题,我想把服务端也做一个窗口出来,就加了了点东西,但为什么窗口打开瞬间又关闭了,一执行了start()就会这样import java.awt.BorderLayout;import java.awt.Frame;import java.awt.TextArea;import java.io.*;import java.net.*;import java.util.*;public class Server extends Frame{ boolean started = false; ServerSocket ss = null; TextArea taContent = new TextArea(); List<Client> clients = new ArrayList<Client>(); public static void main(String[] args) { new Server().launchFrame(); } public void launchFrame() { setLocation(400, 300); this.setSize(300, 300); add(taContent, BorderLayout.NORTH); setVisible(true); start(); } public void start() { try { ss = new ServerSocket(8888); started = true; } catch (BindException e) { //System.out.println("1"); //System.out.println("2"); System.exit(0); } catch (IOException e) { e.printStackTrace(); } try { while(started) { Socket s = ss.accept(); Client c = new Client(s);System.out.println("a client connected!"); new Thread(c).start(); clients.add(c); //dis.close(); } } catch (IOException e) { e.printStackTrace(); } finally { try { ss.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } class Client implements Runnable { private Socket s; private DataInputStream dis = null; private DataOutputStream dos = null; private boolean bConnected = false; public Client(Socket s) { this.s = s; try { dis = new DataInputStream(s.getInputStream()); dos = new DataOutputStream(s.getOutputStream()); bConnected = true; } catch (IOException e) { e.printStackTrace(); } } public void send(String str) { try { dos.writeUTF(str); } catch (IOException e) { clients.remove(this); //System.out.println("3"); //e.printStackTrace(); } } public void run() { try { while(bConnected) { String str = dis.readUTF();System.out.println(str); for(int i=0; i<clients.size(); i++) { Client c = clients.get(i); c.send(str);//System.out.println(" a string send !"); } /* for(Iterator<Client> it = clients.iterator(); it.hasNext(); ) { Client c = it.next(); c.send(str); } */ /* Iterator<Client> it = clients.iterator(); while(it.hasNext()) { Client c = it.next(); c.send(str); } */ } } catch (EOFException e) { System.out.println("Client closed!"); } catch (IOException e) { e.printStackTrace(); } finally { try { if(dis != null) dis.close(); if(dos != null) dos.close(); if(s != null) { s.close(); //s = null; } } catch (IOException e1) { e1.printStackTrace(); } } } }} jdbc已经获取到oracle的数据库连接后,使用java如何导出当前连接的数据库用户的数据? jfreechart饼图百分比显示问题 JSON接收值的问题?? Struts 可视化开发 一个简单的数组问题 菜鸟级别的问题,望高手们解救 调用播放器问题 关于Servlet的问题 JSP如何连接SQL SERVER啊?!我用RESIN老是出错~ servlet.jar的包在哪里下载啊 !急找了好久了没有找到。 ireport 放入web项目中jar包问题 提问 问题标签用户 java web开发,怎么实现用户后台修改网站常量
现在问题是我不太会改,我看了下百度的,很多人是继承了java.applet,但我文件继承了Frame,
java又不能多继承,真的不太会改,最重要是我完全没接触过Applet,能帮我改一下吗
import game.framework.Animation;
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.lang.Thread.State;
import java.net.URL;
import java.util.ArrayList;
import java.util.Random;
import javax.swing.JButton;
import javax.swing.JPanel;//add speedboost
public class Main extends Applet implements Runnable, KeyListener{
enum GameState {
Running, Dead
}
static GameState state = GameState.Running;
private Background bg2, bg1;
private boolean restart = false;
private Player player;
private SpeedBoost sb1;
private Image image;
private Image backsprite1, backsprite2;
private Image player1, dad1, dad2, dad3;
private Image player2;
private Image player3;
private Image back1;
private Image back2, endscreen;
private Image back3, coin, bigcoin;
private Image back4, sbimg;
public Image tilebase, platform;
private Block block1, block2, block3, block4;
private Coin coin1, coin2, coin3, coin4, coin5;
private LargeCoin bc1;
//use for the base...
private Dad dad;
private Graphics second;
private Animation playwalk, dadwalk;
private URL base;
private Platform plat1, plat2, plat3, plat4, plat5, plat6, plat7;
public static int score = 1, coinsint = 1;
public static String score2, coins = "1";
public static int scorespeed = 1;
public int hs1, hs2, hs3, hs4, hs5, totcoins;
public String hs1s, hs2s, hs3s, hs4s, hs5s, totcoinss;
public Ends ends;
@Override
public void init() {
setSize(800, 480);
setBackground(Color.WHITE);
setFocusable(true);
addKeyListener(this);
Frame frame = (Frame) this.getParent().getParent();
frame.setTitle("Game v1.2.2");
try {
base = getDocumentBase();
} catch (Exception e) {
// TODO: handle exception
} endscreen = getImage(base, "data/endscreen.png"); coin = getImage(base, "data/coin.png");
bigcoin = getImage(base, "data/bigcoin.png"); tilebase = getImage(base, "data/tilebase.png");
platform = getImage(base, "data/blocksmall.png");
back1 = getImage(base, "data/back1.png");
back2 = getImage(base, "data/back2.png");
back3 = getImage(base, "data/back3.png");
back4 = getImage(base, "data/back4.png");`enter code here` sbimg = getImage(base, "data/speedboost.png");
player1 = getImage(base, "data/player1.png");
player2 = getImage(base, "data/player2.png");
player3 = getImage(base, "data/player3.png"); dad1 = getImage(base, "data/dad1.png");
dad2 = getImage(base, "data/dad2.png");
dad3 = getImage(base, "data/dad3.png"); backsprite1 = back1;
backsprite2 = back2; playwalk = new Animation();
playwalk.addFrame(player1, 80);
playwalk.addFrame(player2, 80);
playwalk.addFrame(player3, 80);dadwalk = new Animation();
dadwalk.addFrame(dad1, 80);
dadwalk.addFrame(dad2, 80);
dadwalk.addFrame(dad3, 80);
}
public void animate() {
playwalk.update(15);
dadwalk.update(15);
}
@Override
public void start() {
state = state.Running;
ends = new Ends(-3, 0);
//create objects at positions
@Override
public void stop() {
// TODO Auto-generated method stub
} @Override
public void destroy() {
// TODO Auto-generated method stub
} @Override
public void run() {
if (state == GameState.Running) {
while (true) {
//selecting sprites for the background //updates go here
if(bg1.getBgX() < -2100){
bg1.setBgX(2100);
}
if(bg2.getBgX() < -2100){
bg2.setBgX(2100);
} //backgrounds arent working
if(bg1.getBgX() > 2000){
Random rand = new Random(); int nel = rand.nextInt(4) + 1;
if(nel == 1){
backsprite1 = back1;
}if(nel == 2){
backsprite1 = back2;
}if(nel == 3){
backsprite1 = back3;
}if(nel == 4){
backsprite1 = back4;
}
} player.update(); dad.update(); bg1.update();
bg2.update(); coin1.update();
coin2.update();
coin3.update();
coin4.update();
coin5.update();
plat1.update();
plat2.update();
plat3.update();
plat4.update();
plat5.update();
plat6.update();
plat7.update(); if(Block.lives < 0){
state = GameState.Dead; } animate();
repaint();
try {
Thread.sleep(17);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
} }
@Override
public void update(Graphics g) {
if (image == null) {
image = createImage(this.getWidth(), this.getHeight());
second = image.getGraphics();
}
second.setColor(getBackground());
second.fillRect(0, 0, getWidth(), getHeight());
second.setColor(getForeground());
paint(second); g.drawImage(image, 0, 0, this);
}
@Override
public void paint(Graphics g) {
if (state == GameState.Running) {
//main graphics identifyers here
// first are drawn below last
//need to make the platform lower down, see class for explanation g.drawImage(backsprite1, bg1.getBgX(), bg1.getBgY(), this);
g.drawImage(backsprite2, bg2.getBgX(), bg2.getBgY(), this);
g.drawImage(playwalk.getImage(), player.getCenterX(), player.getCenterY(), this); g.drawImage(platform, plat1.getCenterX(), plat1.getCenterY(), this);
g.drawImage(platform, plat2.getCenterX(), plat2.getCenterY(), this);
g.drawImage(platform, plat3.getCenterX(), plat3.getCenterY(), this);
g.drawImage(platform, plat4.getCenterX(), plat4.getCenterY(), this);
g.drawImage(platform, plat5.getCenterX(), plat5.getCenterY(), this);
g.drawImage(platform, plat6.getCenterX(), plat6.getCenterY(), this);
g.drawImage(platform, plat7.getCenterX(), plat7.getCenterY(), this); g.drawImage(sbimg, sb1.getCenterX(), sb1.getCenterY(), this); g.drawImage(bigcoin, bc1.centerX, bc1.centerY, this); g.drawImage(dadwalk.getImage(), dad.centerX, dad.centerY, this); g.drawImage(tilebase, block1.getCenterX(), block1.getCenterY(), this);
g.drawImage(tilebase, block2.getCenterX(), block2.getCenterY(), this);
g.drawImage(tilebase, block3.getCenterX(), block3.getCenterY(), this);
g.drawImage(tilebase, block4.getCenterX(), block4.getCenterY(), this); g.drawImage(coin, coin1.getCenterX(), coin1.getCenterY(), this);
g.drawImage(coin, coin2.getCenterX(), coin2.getCenterY(), this);
g.drawImage(coin, coin3.getCenterX(), coin3.getCenterY(), this);
g.drawImage(coin, coin4.getCenterX(), coin4.getCenterY(), this);
g.drawImage(coin, coin5.getCenterX(), coin5.getCenterY(), this); g.setColor(Color.MAGENTA);
g.drawString(score2, 700, 25);
Font font = new Font("Serif", Font.PLAIN, 36);
g.setFont(font); g.drawString(coins, 20, 25);
}else if (state == GameState.Dead) {
totcoins += coinsint;
coinsint = 0;
hs1s = String.valueOf(hs1);
hs2s = String.valueOf(hs2);
hs3s = String.valueOf(hs3);
hs4s = String.valueOf(hs4);
hs5s = String.valueOf(hs5);
totcoinss = String.valueOf(totcoins);
if(score > hs1){
hs1 = score;
}else if(score > hs2){
hs2 = score;
}else if(score > hs3){
hs3 = score;
}else if(score > hs4){
hs4 = score;
}else if(score > hs5){
hs5 = score;
}
scorespeed = 0;
//format this shit up in here
//when restart is init, then this will be tested
g.setColor(Color.BLACK);
g.fillRect(0, 0, 800, 480);
g.setColor(Color.WHITE);
g.drawString(hs1s, 230, 220);
g.drawString(hs2s, 230, 250);
g.drawString(hs3s, 230, 280);
g.drawString(hs4s, 230, 310);
g.drawString(hs5s, 230, 340);
g.drawString(totcoinss, 700, 100);
g.drawImage(endscreen, ends.cornX, ends.cornY, this); } }
//fix the android stuff
}参照这个试试
对不起版主,有个小问题,我想把服务端也做一个窗口出来,就加了了点东西,但为什么窗口打开瞬间又关闭了,一执行了start()就会这样
import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.TextArea;
import java.io.*;
import java.net.*;
import java.util.*;public class Server extends Frame{
boolean started = false;
ServerSocket ss = null;
TextArea taContent = new TextArea();
List<Client> clients = new ArrayList<Client>();
public static void main(String[] args) {
new Server().launchFrame();
}
public void launchFrame() {
setLocation(400, 300);
this.setSize(300, 300);
add(taContent, BorderLayout.NORTH);
setVisible(true);
start();
}
public void start() {
try {
ss = new ServerSocket(8888);
started = true;
} catch (BindException e) {
//System.out.println("1");
//System.out.println("2");
System.exit(0);
} catch (IOException e) {
e.printStackTrace();
}
try {
while(started) {
Socket s = ss.accept();
Client c = new Client(s);
System.out.println("a client connected!");
new Thread(c).start();
clients.add(c);
//dis.close();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
ss.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class Client implements Runnable {
private Socket s;
private DataInputStream dis = null;
private DataOutputStream dos = null;
private boolean bConnected = false;
public Client(Socket s) {
this.s = s;
try {
dis = new DataInputStream(s.getInputStream());
dos = new DataOutputStream(s.getOutputStream());
bConnected = true;
} catch (IOException e) {
e.printStackTrace();
}
}
public void send(String str) {
try {
dos.writeUTF(str);
} catch (IOException e) {
clients.remove(this);
//System.out.println("3");
//e.printStackTrace();
}
}
public void run() {
try {
while(bConnected) {
String str = dis.readUTF();
System.out.println(str);
for(int i=0; i<clients.size(); i++) {
Client c = clients.get(i);
c.send(str);
//System.out.println(" a string send !");
}
/*
for(Iterator<Client> it = clients.iterator(); it.hasNext(); ) {
Client c = it.next();
c.send(str);
}
*/
/*
Iterator<Client> it = clients.iterator();
while(it.hasNext()) {
Client c = it.next();
c.send(str);
}
*/
}
} catch (EOFException e) {
System.out.println("Client closed!");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(dis != null) dis.close();
if(dos != null) dos.close();
if(s != null) {
s.close();
//s = null;
}
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
}