Java & Oracle

Applet

AlreadyNo 2014. 5. 19. 16:55

Image Tag

<!DOCTYPE html>

<html>

<head>

<title> Image tag </title>

<meta charset="utf-8">

</head>

<body>

<img src="images/jimin.jpg" alt="한지민" width="300" />

<img src="Nothing" alt="그림이 존재하지 않습니다." width="300" />

</body>

</html>

-----------------------------------

이미지를 가운데로 방법1 (표준아님)

<center>

       <img src ="images/jimin.jpg" alt="예쁜 한지민" width="200" height="300">

       </center>

이미지를 가운데로 방법2

        <div align='center'>

       <img src ="images/jimin.jpg" alt="예쁜 한지민" width="200" height="300">

       </div>

-------------------------------

<img src ="images/jimin.jpg" alt="예쁜 한지민" width="200" height="300" vspace="50" hsapce="100">

vspace="50" : 이미지의 위 아래의 수직간격을 줌.

hsapce="100" : 이미지의 수평간격을 줌.

--------------------------------

iframe 사용

<!DOCTYPE html>

<html lang="en">

    <head>

        <meta charset="utf-8">

        <title>iframe</title>

        <style>

            .aaa {width:250;height:300}

        </style>

    <body>

       <table border='0' align='cneter' width='500' height='600'>

           <caption> 검색엔진의 시작페이지 비교</caption>

       <tr height='300'>

       <td width='250'><iframe width="250" height="300" src='http://www.naver.com'></iframe></td>

       <td width='250'><iframe width="250" height="300" src='http://www.daum.net'></iframe></td>

       </tr>

       <tr height='300'>

       <td width='250'><iframe width="250" height="300" src='https://www.google.co.kr/'></iframe></td>

       <td width='250'><iframe width="250" height="300" src='http://www.nate.com'></iframe></td>

       </tr>       

       </table>        

    </body>

</html>

--------------------------------

embed

<!DOCTYPE html>

<html lang="en">

<html>

    <head>

        <title> embed </title>

        <meta charset="utf-8">

    </head>

    <body>

        <embed src="audio/whenidream.mid"></embed>

    </body>

</html>

실행은 이런식이었는데 file:///D:/WebHome/0519/embed.html/ 음..

-------------------------------

video

<!DOCTYPE html>

<html lang="en">

<html>

    <head>

        <title> Video Tag </title>

        <meta charset="utf-8">

    </head>

    <body>

    <video src="video/Wildlife.mp4" type="video/mp4" controls></video>

    </body>

</html>

설명: controls 는 조절 부분이 있게

-----------------------------------

Mouseover video

<!DOCTYPE html>

<html lang="en">

<html>

    <head>

        <title> Mouseover Video </title>

        <meta charset="utf-8">

    </head>

    <body>

    <video id="movies" onmouseover="this.play()" onmouseout="this.pause()" autobuffer="true" width="400px" height="300px">

        <source src="video/Wildlife.ogg" type='video/ogg'>

        <source src="video/Wildlife.mp4" type='video/mp4'>

    </video>

    <h1>Point at the video to play it!</h1>

    </body>

</html>

비디오에 마우스를 올리면 진행되고, 비디오 바깥으로 마우스를 가져가면 비디오가 멈추는.

----------------------------

오디오 클릭으로 소리 키고 끄기

<!DOCTYPE html>

<html>

    <title>Audio cue</title>

    <script type="text/javascript">

        function toggleSound(){

            var music = document.getElementById("clickSound");

            var toggle = document.getElementById("toggle");

            

          if(music.paused){

              music.play();

              toggle.innerHTML = "Pause";

          }

          else{

              music.pause();

              toggle.innerHTML = "play";

          }

        }

    </script>

    <head>

        <meta charset="utf-8">

    </head>


    <body>

        <audio id="clickSound">

            <source src="audio/johann_sebastian_bach_air.ogg">

            <source src="audio/johann_sebastian_bach_air.mp3">

        </audio>

        <button id="toggle" onclick="toggleSound()">play</button>

    </body>

</html>

--------------------------------------

<!DOCTYPE html>

<html lang="en">

    <head>

        <meta charset="utf-8">

    </head>


    <body>

        <video controls="controls" width="640" height="360"

          data-setup"{}">

            <source src="video/Wildlife.mp4" type="video/mp4" >

            <source src="video/Wildlife.webm" type="video/webm" >

            <track kind="subtitles" src="track.srt" srclang="ko" label="Korean" />

            <track kind="subtitles" src="track.srt" srclang="en" label="English" />

            <track kind="subtitles" src="track.srt" srclang="jp" label="Japanese" />

            <track kind="subtitles" src="track.srt" srclang="ch" label="Chinese" />    

        </video>

    </body>

</html>

트랙이 인터넷익스플로어에서만 보임.

-----------------------------

라인 그리기

<!DOCTYPE html>

<html lang="en">

    <head>

        <title>Diagonal line with canvas</title>

        <meta charset="utf-8">

        <script>

            function drawDiagonal(){

                var canvas = document.getElementById('diagonal');

                var context = canvas.getContext('2d');

                context.beginPath();

                context.moveTo(70,140);

                context.lineTo(140,70);         

                context.stroke();

            }

            window.addEventListener("load", drawDiagonal, true);

        </script>

    </head>

    <body>

        <canvas id="diagonal" style="border: 1px solid;" width="200" height="200"></canvas>

    </body>

</html>

------------------------------

/*

Applet = Application + let(접미사) --> J2SE

 --Lifecycle

   --init(),start() or paint(), stop(), destroy()

Servlet = Server + Applet  --> J2EE

MIDlet = MIDP + Applet  --> J2ME

공통점 : 라이프사이클이 똑같다. 부모로부터 상속 받는 것도 똑같다.

*/

import java.awt.Font;

import java.awt.Graphics;

public class HelloWorldApplet extends java.applet.Applet{

private Font font;

@Override

public void init(){

this.font = new Font("Verdana", Font.BOLD + Font.ITALIC, 35);

}

@Override

public void paint(Graphics g){

setFont(this.font);

g.drawString("Hello, World", 30,50);

}

}

명령프롬프트로 컴파일해서 클래스파일을 만들어서 

<!-- helloworldapplet.html-->

<!DOCTYPE html>

<html>

<head>

<title> Java Applet Tag </title>

<meta charset="utf-8">

</head>

<body>

<h2>Java Applet Tag</h2>

<applet width="300" height="300" code="HelloWorldApplet" style="background-color:yellow"></applet>

</body>

</html>

html 파일도 위처럼 만들어 준후 같은 위치에 class파일과 html파일을 만들어서 

http://localhost/0519/helloworldapplet.html 하면 되야하는데 안됨.

방안 : 컴파일을 1.7로 해주고 javac -source 1.7 -target 1.7 HelloWorldApplet.java 치고

제어판 -java - security 탭에가서 보안을 제일아래로 내려줌.

크롬을 쓴다면 url에 chrome://plugins 들어가

Java(TM) - 버전: 10.55.2.14

Next Generation Java Plug-in 10.55.2 for Mozilla browsers  을 항상 허용 체크.

브라우저를 닫았다가 다시 열어. 다시  http://localhost/0519/helloworldapplet.html 들가면 ....

되긴되는데 깜박이네.. 음..

-------------------------------

버튼 누르면 색 바뀌게

AplletEvent.java

import java.awt.Button;

import java.awt.Color;

import java.awt.Font;

import java.awt.Graphics;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;


public class AppletEvent extends java.applet.Applet implements ActionListener{

private Button btnBlue, btnRed;

private Font font;

@Override

public void init(){

this.font = new Font("Times New Roman", Font.BOLD,30);

this.btnRed = new Button("RED");

this.btnRed.setBackground(Color.blue);

this.btnBlue = new Button("BLUE");

this.btnBlue.setBackground(Color.red);

this.btnRed.addActionListener(this);

this.btnBlue.addActionListener(this);

add(this.btnBlue); add(this.btnRed);

this.setBackground(Color.yellow);

}

@Override

public void paint(Graphics g){

g.setFont(this.font);

g.drawString("Hello,  World!!!", 30, 50);

}

@Override

public void actionPerformed(ActionEvent evt) {

switch(evt.getActionCommand()){

case "RED" : this.setBackground(Color.red); break;

case "BLUE" : this.setBackground(Color.blue); break;

}

}

}

자바컴파일해서 클래스파일을 html과 같은 위치에

<!-- appletevent.html-->

<!DOCTYPE html>

<html>

<head>

<title> Java Applet Tag </title>

<meta charset="utf-8">

</head>

<body>

<h2>Java Applet Tag</h2>

<applet width="300" height="300" code="AppletEvent"</applet>

</body>

</html>

-------------------------------------

리스트에 담기 및 삭제

import java.applet.Applet;

import java.awt.BorderLayout;

import java.awt.Button;

import java.awt.Color;

import java.awt.Font;

import java.awt.Label;

import java.awt.List;

import java.awt.Panel;

import java.awt.TextField;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.ItemEvent;

import java.awt.event.ItemListener;


public class ShoppingMall extends Applet implements ActionListener, ItemListener{

private Panel p, p1;

private TextField tfAdd, tfRemove;

private Button btnAdd, btnRemove;

private List cart;

private Font font;

@Override

public void init(){

this.setBackground(Color.YELLOW);

this.font = new Font("Arial", Font.BOLD, 30);

this.setLayout(new BorderLayout());

this.p = getNorth();

this.p1 = getSouth();

cart = new List();

this.cart.setFont(font);

this.cart.addItemListener(this);

this.add(this.p, "North");

this.add(this.p1, "South");

this.add(this.cart, "Center");

}

private Panel getNorth(){

Panel pNorth = new Panel();

pNorth.add(new Label("담기 : "));

pNorth.add(this.tfAdd = new TextField(10));

this.tfAdd.setFont(font);

pNorth.add(this.btnAdd = new Button("담기"));

this.btnAdd.setFont(font);

this.btnAdd.addActionListener(this);

return pNorth;

}

private Panel getSouth(){

Panel pSouth = new Panel();

pSouth.add(new Label("삭제 : "));

pSouth.add(this.tfRemove = new TextField(10));

this.tfRemove.setFont(font);

pSouth.add(this.btnRemove = new Button("삭제"));

this.btnRemove.setFont(font);

this.btnRemove.addActionListener(this);

return pSouth;

}

@Override

public void actionPerformed(ActionEvent evt){

if(evt.getSource() == btnAdd || evt.getSource() == tfAdd){

this.cart.add(this.tfAdd.getText().trim());

this.tfAdd.setText((""));

}else if(evt.getSource() == btnRemove || evt.getSource() == tfRemove){

this.cart.remove(tfRemove.getText().trim());

this.tfRemove.setText("");

}

}

@Override

public void itemStateChanged(ItemEvent evt){

this.tfRemove.setText(this.cart.getSelectedItem());

}

}

자바 컴파일 후

<!DOCTYPE html>

<html>

<head>

<title> Java Applet Tag </title>

<meta charset="utf-8">

</head>

<body>

<h2>Java Applet Tag</h2>

<applet width="500" height="500" code="ShoppingMall" style="background-color:yellow"></applet>

</body>

</html>

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

이미지의 위치를 마우스클릭할떄 바뀌는 것

import java.applet.Applet;

import java.awt.Graphics;

import java.awt.Image;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;


public class ImageApplet extends Applet {

private Image image;

private int mouseX;

private int mouseY;

@Override

public void init(){

this.addMouseListener(new MouseAdapter(){

public void mouseClicked(MouseEvent evt){

mouseX = evt.getX();

mouseY = evt.getY();

repaint();

}

});

this.image = this.getImage(this.getDocumentBase(), "images/duke.jpg");

}

public void paint(Graphics g){

g.drawImage(this.image, this.mouseX, this.mouseY, this);

}

}

컴파일해서 imageapplet 클래스파일 두개를 모두 옮겨준 후 

<!DOCTYPE html>

<html>

<head>

<title> Java Applet Tag </title>

<meta charset="utf-8">

</head>

<body>

<h2>Java Applet Tag</h2>

<applet width="700" height="600" code="ImageApplet" style="background-color:yellow"></applet>

</body>

</html>

------------------------------

마우스가 움직이면 이미지가 따라 움직이는

import java.applet.Applet;

import java.awt.Graphics;

import java.awt.Image;

import java.awt.event.MouseEvent;

import java.awt.event.MouseMotionAdapter;


public class ImageApplet extends Applet {

private Image image;

private int mouseX;

private int mouseY;

@Override

public void init(){

this.addMouseMotionListener(new MouseMotionAdapter(){

public void mouseMoved(MouseEvent evt){

mouseX = evt.getX();

mouseY = evt.getY();

repaint();

}

});

this.image = this.getImage(this.getDocumentBase(), "images/duke.jpg");

}

public void paint(Graphics g){

g.drawImage(this.image, this.mouseX, this.mouseY, this);

}

}

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

Param 

import java.awt.Font;

import java.awt.Graphics;


public class ParamDemo extends java.applet.Applet{

@Override

public void paint(Graphics g){

String fontName = this.getParameter("fonts"); //html파일에서 fonts = Tahoma 이다.

int fontSize = Integer.parseInt(this.getParameter("size"));

Font font = new Font(fontName, Font.BOLD, fontSize);

g.setFont(font);

g.drawString(fontName,25,50);

}

}

<!DOCTYPE html>

<html>

<head>

<title> Java Applet Tag </title>

<meta charset="utf-8">

</head>

<body>

<h2>Java Applet Tag</h2>

<applet width="700" height="600" code="ParamDemo">

 <param name="size" value="40" />

 <param name="fonts" value="Tahoma" />

</applet>

</body>

</html>

-----------------------------------

applet clock

import java.awt.Font;

import java.awt.Graphics;

import java.util.Date;



public class AppletClock extends java.applet.Applet implements Runnable{

private Date date;

private Thread runner;

private Font font;

private boolean isStop;

@Override

public void start(){

date = new Date();

font = new Font("Arial", Font.BOLD, 30);

runner = new Thread(this);

isStop = false;

runner.start(); //Thread가 스타트 하는..

}

@Override

public void stop(){

if(runner != null){

isStop = true;

runner = null;

}

}

@Override

public void run(){

//Thread가 실행하는 코드

while(!isStop){

date = new Date();

repaint();

try{

Thread.sleep(1000);

}catch(Exception ex){}

}

}

@Override

public void paint(Graphics g){

g.setFont(font);

g.drawString(date.toString(), 10, 50);

}

}


<!-- helloworldapplet.html-->

<!DOCTYPE html>

<html>

<head>

<title> Java Applet Tag </title>

<meta charset="utf-8">

</head>

<body>

<h2>Java Applet Tag</h2>

<applet width="700" height="600" code="AppletClock">

 <param name="size" value="40" />

 <param name="fonts" value="Tahoma" />

</applet>

</body>

</html>


1초마다 계속 repaint하여 시계처럼 동작.

----------------------

정해진 시간에 소리가 나게

import java.applet.AudioClip;

import java.awt.Font;

import java.awt.Graphics;

import java.util.Date;



public class AppletClock extends java.applet.Applet implements Runnable{

private Date date;

private Thread runner;

private Font font;

private boolean isStop;

private AudioClip audio;

@Override

public void init(){

audio = this.getAudioClip(getCodeBase(),"audio/bs-ironman.mid");

}

@Override

public void start(){

date = new Date();

font = new Font("Arial", Font.BOLD, 30);

runner = new Thread(this);

isStop = false;

runner.start(); //Thread가 스타트 하는..

}

@Override

public void stop(){

if(runner != null){

isStop = true;

runner = null;

}

}

@Override

public void run(){

//Thread가 실행하는 코드

while(!isStop){

date = new Date();

repaint();

try{

Thread.sleep(1000);

}catch(Exception ex){}

}

}

@Override

public void paint(Graphics g){

g.setFont(font);

String str = date.toString();

g.drawString(date.toString(), 10, 50);  //Mon May 19 16:45:14 KST 2014

if(str.equals("Mon May 19 16:52:00 KST 2014")){

this.audio.play();

}

}

}

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ