от Applet в JFrame
8 отговора
160 прегледа
от Applet в JFrame
как да стане аплета да тръгва във фраме
по конкретно този апплет да си тръгва в JFrame :
import java.awt.*;
import java.applet.*;
import javax.swing.*;
public class BallApplet extends Applet implements Runnable {
public static final int ANIMATION_SPEED = 10;
public static final String IMAGE_NAME_PARAM = "imageName";
private int mBallX, mBallY, mBallSpeedX, mBallSpeedY;
private Image mBallImage;
private Image mImageBuffer;
private Graphics mImageBufferGraphics;
private Thread mAnimationThread;
private boolean mAnimationThreadInterrupted = false;
public void init() {
String imageName = getParameter(IMAGE_NAME_PARAM);
if (imageName == null) {
System.err.println("Applet parameter " +
IMAGE_NAME_PARAM + " is missing.");
System.exit(-1);
}
mBallImage = getImage(getCodeBase(), imageName);
MediaTracker tracker = new MediaTracker(this);
tracker.addImage(mBallImage,0);
try {
tracker.waitForAll();
} catch (InterruptedException ie) { }
if (tracker.statusAll(true) != MediaTracker.COMPLETE) {
System.err.println("Can not load " + imageName);
System.exit(-1);
}
mBallX = 1;
mBallY = 1;
mBallSpeedX = 1;
mBallSpeedY = 1;
mImageBuffer = createImage(
getSize().width, getSize().height);
mImageBufferGraphics = mImageBuffer.getGraphics();
}
public void paint(Graphics aGraphics) {
synchronized (this) {
if (mAnimationThread != null) {
mImageBufferGraphics.fillRect(
0, 0, getSize().width, getSize().height);
mImageBufferGraphics.drawImage(
mBallImage, mBallX, mBallY, this);
aGraphics.drawImage(mImageBuffer, 0, 0, this);
}
}
}
public void start() {
if (mAnimationThread == null) {
mAnimationThreadInterrupted = false;
mAnimationThread = new Thread(this);
mAnimationThread.start();
}
}
public void stop() {
synchronized (this) {
mAnimationThreadInterrupted = true;
}
try {
mAnimationThread.join();
} catch (InterruptedException ie) { }
mAnimationThread = null;
}
public void run() {
int maxX, maxY;
synchronized (this) {
maxX = this.getSize().width -
mBallImage.getWidth(this);
maxY = this.getSize().height -
mBallImage.getHeight(this);
}
while (true) {
synchronized (this) {
if (mAnimationThreadInterrupted)
break;
if ((mBallX >= maxX) || (mBallX <= 0))
mBallSpeedX = -mBallSpeedX;
mBallX = mBallX + mBallSpeedX;
if ((mBallY >= maxY) || (mBallY <= 0))
mBallSpeedY = -mBallSpeedY;
mBallY = mBallY + mBallSpeedY;
}
paint(getGraphics());
try {
Thread.sleep(ANIMATION_SPEED);
} catch (Exception ex) {}
}
}
}
сега тръгва чрез този html:
<html>
<head><title>Ball Applet – New Test Page</title></head>
<body>
<object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" codebase="[линк]" width="200" height="150">
<param name="code" value="BallApplet.class">
<param name="type" value="application/x-java-applet;version=1.4">
<param name="imageName" value="ball.jpg">
<comment>
<embed type="application/x-java-applet;version=1.4"
code="BallApplet.class" width="200" height="150"
imageName="ball.jpg" pluginspage="[линк]">
<noembed>
Applet can not be started because
Java Plug-In 1.4 is not installed.
</noembed>
</embed>
</comment>
</object>
</body>
</html>
по конкретно този апплет да си тръгва в JFrame :
import java.awt.*;
import java.applet.*;
import javax.swing.*;
public class BallApplet extends Applet implements Runnable {
public static final int ANIMATION_SPEED = 10;
public static final String IMAGE_NAME_PARAM = "imageName";
private int mBallX, mBallY, mBallSpeedX, mBallSpeedY;
private Image mBallImage;
private Image mImageBuffer;
private Graphics mImageBufferGraphics;
private Thread mAnimationThread;
private boolean mAnimationThreadInterrupted = false;
public void init() {
String imageName = getParameter(IMAGE_NAME_PARAM);
if (imageName == null) {
System.err.println("Applet parameter " +
IMAGE_NAME_PARAM + " is missing.");
System.exit(-1);
}
mBallImage = getImage(getCodeBase(), imageName);
MediaTracker tracker = new MediaTracker(this);
tracker.addImage(mBallImage,0);
try {
tracker.waitForAll();
} catch (InterruptedException ie) { }
if (tracker.statusAll(true) != MediaTracker.COMPLETE) {
System.err.println("Can not load " + imageName);
System.exit(-1);
}
mBallX = 1;
mBallY = 1;
mBallSpeedX = 1;
mBallSpeedY = 1;
mImageBuffer = createImage(
getSize().width, getSize().height);
mImageBufferGraphics = mImageBuffer.getGraphics();
}
public void paint(Graphics aGraphics) {
synchronized (this) {
if (mAnimationThread != null) {
mImageBufferGraphics.fillRect(
0, 0, getSize().width, getSize().height);
mImageBufferGraphics.drawImage(
mBallImage, mBallX, mBallY, this);
aGraphics.drawImage(mImageBuffer, 0, 0, this);
}
}
}
public void start() {
if (mAnimationThread == null) {
mAnimationThreadInterrupted = false;
mAnimationThread = new Thread(this);
mAnimationThread.start();
}
}
public void stop() {
synchronized (this) {
mAnimationThreadInterrupted = true;
}
try {
mAnimationThread.join();
} catch (InterruptedException ie) { }
mAnimationThread = null;
}
public void run() {
int maxX, maxY;
synchronized (this) {
maxX = this.getSize().width -
mBallImage.getWidth(this);
maxY = this.getSize().height -
mBallImage.getHeight(this);
}
while (true) {
synchronized (this) {
if (mAnimationThreadInterrupted)
break;
if ((mBallX >= maxX) || (mBallX <= 0))
mBallSpeedX = -mBallSpeedX;
mBallX = mBallX + mBallSpeedX;
if ((mBallY >= maxY) || (mBallY <= 0))
mBallSpeedY = -mBallSpeedY;
mBallY = mBallY + mBallSpeedY;
}
paint(getGraphics());
try {
Thread.sleep(ANIMATION_SPEED);
} catch (Exception ex) {}
}
}
}
сега тръгва чрез този html:
<html>
<head><title>Ball Applet – New Test Page</title></head>
<body>
<object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" codebase="[линк]" width="200" height="150">
<param name="code" value="BallApplet.class">
<param name="type" value="application/x-java-applet;version=1.4">
<param name="imageName" value="ball.jpg">
<comment>
<embed type="application/x-java-applet;version=1.4"
code="BallApplet.class" width="200" height="150"
imageName="ball.jpg" pluginspage="[линк]">
<noembed>
Applet can not be started because
Java Plug-In 1.4 is not installed.
</noembed>
</embed>
</comment>
</object>
</body>
</html>
Re: от Applet в JFrame
Ако правилно съм разбрал въпроса, трябва просто да добавиш main метод към класа. Нещо такова:
public static void main(String[] s){
BallApplet applet=new BallApplet();
JFrame frame=new JFrame("Applet viewer");
frame.getContentPane().add(applet);
int screen_w=Toolkit.getDefaultToolkit().getScreenSize().width;
int screen_h=Toolkit.getDefaultToolkit().getScreenSize().height;
frame.setBounds((screen_w-200)/2, (screen_h-150)/2, 200, 150);
frame.setVisible(true);
frame.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
(Не забравяй да добавиш import java.awt.event.*; към импортваните класове, за да можеш да затваряш прозореца.)
В твоя случай обаче ще трябва да се преработи аплета, защото той получава параметри от HTML кода, за да отвори картинка.
public static void main(String[] s){
BallApplet applet=new BallApplet();
JFrame frame=new JFrame("Applet viewer");
frame.getContentPane().add(applet);
int screen_w=Toolkit.getDefaultToolkit().getScreenSize().width;
int screen_h=Toolkit.getDefaultToolkit().getScreenSize().height;
frame.setBounds((screen_w-200)/2, (screen_h-150)/2, 200, 150);
frame.setVisible(true);
frame.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
(Не забравяй да добавиш import java.awt.event.*; към импортваните класове, за да можеш да затваряш прозореца.)
В твоя случай обаче ще трябва да се преработи аплета, защото той получава параметри от HTML кода, за да отвори картинка.
Обвес на внедорожник - ветровики, набор хромированных накладок, Автостиль
Приветствую cecaclubs.dir.bg!
Попробую предоставить вам современнейший проверенный временем кенгурятник и ветровики.
В нашем тюнинг магазине навесного оборудования всегда в наличии отменные штуки: фаркопы
Вы конечно всегда можете найти у нас ветровики, рейлинги на авто. Помните, что внешний вид и защита вашего внедорожника -
в наших руках. Приобретайте расширители колёсных арок у нас по низким ценам. Вы будете очень рады!.
Приобретая тюнинг под автомобиль - вам станет приятней смотреть на ваше авто!
Попробую предоставить вам современнейший проверенный временем кенгурятник и ветровики.
В нашем тюнинг магазине навесного оборудования всегда в наличии отменные штуки: фаркопы
Вы конечно всегда можете найти у нас ветровики, рейлинги на авто. Помните, что внешний вид и защита вашего внедорожника -
в наших руках. Приобретайте расширители колёсных арок у нас по низким ценам. Вы будете очень рады!.
Приобретая тюнинг под автомобиль - вам станет приятней смотреть на ваше авто!
Выкуп Iframe трафика
Выкупим весь Ваш Iframe (ифрейм) трафик.
- Ежедневные выплаты!
- Отзывчивый суппорт!
- Высокие тарифы!
- 2й год на рынке!
Подробности на Goldtraf.Info
Нам доверяют!
ICQ для вопросов и предложений: 55-95-65
- Ежедневные выплаты!
- Отзывчивый суппорт!
- Высокие тарифы!
- 2й год на рынке!
Подробности на Goldtraf.Info
Нам доверяют!
ICQ для вопросов и предложений: 55-95-65
Возможно ли прочитать чужие смс и историю вызовов.
[SIZE=4]Р’РћР—РњРћР–РќРћ Р›Р? РџРРћР§Р?РўРђРўР¬
Р§РЈР–Р?Р• РЎРњРЎ, Р?РЎРўРћРР?Р® ВЫЗОВОВ Р? РЈР—РќРђРўР¬ Р’РЎР® РџРАВДУ Рћ ЧЕЛОВЕКЕ?[/SIZE]
Умеете ли вы читать чужие sms? Думаете это так же сложно, как читать мысли других людей? Думаете для этого надо быть каким-то элитарным хакером? Думаете это очень сложно и вы не справитесь?
Рто очень легко! Р’С‹ можете делать перехват sms СЃРІРѕРёРјРё руками! Посети сайт "[URL=[линк]][COLOR=Red]Контроль телефонов[/COLOR][/URL]"!
Вы прямо сейчас сможете контролировать нужного вам человека: вашего парня/девушку, друга, брата, конкурента по бизнесу, злейшего врага и не только. Вы можете знать наверняка, кому пишутся смски этими людьми, от Вас ничего будет нельзя утаить! Контролируешь мобильный - контролируешь круг общения человека.
[URL=[линк]][IMG][линк][/IMG][/URL]
Р’РЎР• РРўРћ РЕАЛЬНО Р? Р’РћР—РњРћР–РќРћ Р’ РЈРќР?КАЛЬНОМ РЎР•РР’Р?РЎР•.
[URL=[линк]][COLOR=Red]РќР• Р’Р•РР?РўР• - УБЕДР?ТЕСЬ РЎРђРњР?[/COLOR][/URL]
Р§РЈР–Р?Р• РЎРњРЎ, Р?РЎРўРћРР?Р® ВЫЗОВОВ Р? РЈР—РќРђРўР¬ Р’РЎР® РџРАВДУ Рћ ЧЕЛОВЕКЕ?[/SIZE]
Умеете ли вы читать чужие sms? Думаете это так же сложно, как читать мысли других людей? Думаете для этого надо быть каким-то элитарным хакером? Думаете это очень сложно и вы не справитесь?
Рто очень легко! Р’С‹ можете делать перехват sms СЃРІРѕРёРјРё руками! Посети сайт "[URL=[линк]][COLOR=Red]Контроль телефонов[/COLOR][/URL]"!
Вы прямо сейчас сможете контролировать нужного вам человека: вашего парня/девушку, друга, брата, конкурента по бизнесу, злейшего врага и не только. Вы можете знать наверняка, кому пишутся смски этими людьми, от Вас ничего будет нельзя утаить! Контролируешь мобильный - контролируешь круг общения человека.
[URL=[линк]][IMG][линк][/IMG][/URL]
Р’РЎР• РРўРћ РЕАЛЬНО Р? Р’РћР—РњРћР–РќРћ Р’ РЈРќР?КАЛЬНОМ РЎР•РР’Р?РЎР•.
[URL=[линк]][COLOR=Red]РќР• Р’Р•РР?РўР• - УБЕДР?ТЕСЬ РЎРђРњР?[/COLOR][/URL]
Куплю лицензионный софт
Куплю Сѓ вас Р›Р?ЦЕНЗР?РћРќРќРћР• РџРћ Windows XP, Office 2007, Server 2008 Рё РґСЂСѓРіРёРµ лицензионные программные продукты РїРѕ ВЫСОКР?Рњ ЦЕНАМ!
предложения на е-мейл softforme@bk.ru
предложения на е-мейл softforme@bk.ru
Наш музыкальный коллектив украсит Вам корпоратив - Музыкальная группа Дежа вю
[color=#ffffff]Музыкальный ансамбль Dejavu-group - это коллектив виртуозных вокалистов и музыкантов.
Dejavu-group - законодатель в области музыкального оформления торжеств, музыкальных мероприятий, корпоративок .
В репертуаре группы Deja Vu около 3 тыс. произведений.
Только Р¶РёРІРѕРµ исполнение. Ретро, хиты 70-80-90-С…, джаз, РґРёСЃРєРѕ, РїРѕРї, современная музыка, европейские хиты, фоновая музыка, шансон.
Р’Р?Рђ Deja Vu располагает мощной качественной музыкальной аппаратурой, позволяющей заполнить приятным СѓС…Сѓ Р·РІСѓРєРѕРј как маленькое помещение (фуршет), так Рё большое помещение (корпоратив РґРѕ тысячи человек).
Андрей +7 910 483 8294 [/color]
Dejavu-group - законодатель в области музыкального оформления торжеств, музыкальных мероприятий, корпоративок .
В репертуаре группы Deja Vu около 3 тыс. произведений.
Только Р¶РёРІРѕРµ исполнение. Ретро, хиты 70-80-90-С…, джаз, РґРёСЃРєРѕ, РїРѕРї, современная музыка, европейские хиты, фоновая музыка, шансон.
Р’Р?Рђ Deja Vu располагает мощной качественной музыкальной аппаратурой, позволяющей заполнить приятным СѓС…Сѓ Р·РІСѓРєРѕРј как маленькое помещение (фуршет), так Рё большое помещение (корпоратив РґРѕ тысячи человек).
Андрей +7 910 483 8294 [/color]