ÇÊ¿äÇÑ ºÐµéÀÌ °è½Å °Í °°¾Æ¼ ±×³É ¿Ã¸³´Ï´Ù.
Âü°í ÇϽǺÐÀº Âü°í Çϼż, ´õ ¸ÚÁø ÇÁ·Î±×·¥ ¸¸µé¾î ÁÖ¼¼¿ä~~~
Ȥ Áú¹® ÀÖÀ¸½Ã¸é °Ô½ÃÆÇÀ¸·Î.....^^;;
import java.awt.*;
import java.util.*;
import java.awt.event.*;
import java.net.URL;
import java.applet.*;
public class NewHtt extends java.applet.Applet
{
String []sWords2 =
{
"°¡³ÇÑ »ç¶÷Àº ´öÇàÀ¸·Î, ºÎÀÚ´Â ¼±ÇàÀ¸·Î À̸§À» ¶³ÃÄ¾ß ÇÑ´Ù.",
"°¡½Ã³ª¹«¸¦ ½É´Â ÀÚ´Â Àå¹Ì¸¦ ±â´ëÇØ¼´Â ¾È µÈ´Ù."
};
String [] sWords =
{
"°¡±î¿î ±æ ¸¶´ÙÇÏ°í ¸Õ ±æ·Î °£´Ù.",
"°¡±î¿î ÀÌ¿ô ¸Õ ģôº¸´Ù ³´´Ù.",
"Ȱ¡ º¹ÀÌ µÈ´Ù.",
"Ȳ¼Ò µÞ°ÉÀ½ÁúÇÏ´Ù Áã Àâ´Â´Ù."
};
String cUp;
String cCenter;
String cDown;
String [] words = sWords;
// ÆùÆ® ¼³Á¤
Font f = new Font("±¼¸²", Font.BOLD, 18);
Font f2 = new Font("°íµñ", Font.BOLD,14);
Font f3 = new Font("°íµñ", Font.PLAIN,14);
Font f4 = new Font("°íµñ", Font.PLAIN, 12);
//¶óº§
Label lb0 = new Label("´Ü¹®¿¬½À v0.9");
Label lb1 = new Label("ÇöÀç");
Label lb2 = new Label("ÃÖ°í");
Label lb3 = new Label("Æò±Õ");
Label lb4 = new Label("¼Óµµ (Ÿ/ºÐ)");
Button lb5 = new Button("Á¦ÀÛ: ÀÌ¿øµ¿(http://home.nownuri.net/~gresfa)");
//ÅØ½ºÆ®Çʵå
TextField t1 = new TextField(4);
TextField t2 = new TextField(4);
TextField t3 = new TextField(4);
//ȸ鱸¼ºÀ» À§ÇÑ ÆÐ³Î
Panel pTop = new Panel();
Panel pUp = new Panel();
Panel pDown1 = new Panel();
Panel pDown2 = new Panel();
Panel pDownAll = new Panel();
//´Ü¹® Ãâ·ÂÀ» À§ÇÑ ÅØ½ºÆ® Çʵå
TextField textShort1 = new TextField(60);
TextField textShort2 = new TextField(60);
Button bWord = new Button("¸í¾ðÀ¸·Î ¹Ù²Ù±â");
Button bEnd = new Button("óÀ½ºÎÅÍ");
int number = 0;
int count = 0;
double stime = 0;
int ctt = 0;
int mtt = 0;
int ett = 0;
int ttt = 0;
int total = 0;
boolean sFlag = false;
public void init()
{
cUp = getParameter("upcolor");
cCenter = getParameter("centercolor");
cDown = getParameter("downcolor");
// ÆùÆ® ¼³Á¤
textShort1.setFont(f);
textShort1.setEditable(false);
textShort2.setFont(f);
lb1.setFont(f2);
lb2.setFont(f2);
lb3.setFont(f2);
lb4.setFont(f2);
lb5.setFont(f4);
lb0.setFont(f2);
t1.setFont(f3);
t2.setFont(f3);
t3.setFont(f3);
t1.setEnabled(false);
t2.setEnabled(false);
t3.setEnabled(false);
// È¸é ±¸¼º
setLayout(new BorderLayout());
pTop.add(lb0);
pTop.add(bWord);
pTop.setBackground(color(cUp));
pUp.add(textShort1, BorderLayout.NORTH);
pUp.add(textShort2, BorderLayout.SOUTH);
pUp.setBackground(color(cCenter));
pDown1.add(lb4);
pDown1.add(lb1);
pDown1.add(t1);
pDown1.add(lb2);
pDown1.add(t2);
pDown1.add(lb3);
pDown1.add(t3);
pDown1.add(bEnd);
pDown2.add(lb5);
pDownAll.setLayout(new BorderLayout());
pDownAll.add(pDown1, BorderLayout.NORTH);
pDownAll.add(pDown2, BorderLayout.SOUTH);
pDownAll.setBackground(color(cDown));
add(pTop, BorderLayout.NORTH);
add(pUp, BorderLayout.CENTER);
add(pDownAll, BorderLayout.SOUTH);
nextWord();
stime = new Date().getTime();
// ¸®½º³Ê µî·Ï
bWord.addActionListener(new ChangeWord());
textShort2.addKeyListener(new KeyHandler());
bEnd.addActionListener(new ActionHandler());
lb5.addActionListener(new ShowLink());
}
public Color color(String str)
{
return new Color(Integer.parseInt(str,16));
}
public void nextWord()
{
callScore();
count = 0;
total++;
sFlag = false;
number = Math.abs(new Random().nextInt()%words.length);
textShort1.setText(words[number]);
textShort2.setText("");
textShort2.requestFocus();
}
public void callScore()
{
if (total!=0)
{
double tTime = (new Date().getTime() - stime)/1000/60;
ctt = (int)(count/tTime);
if (ctt>mtt)
{
mtt = ctt;
}
ttt = ttt + ctt;
ett = (int)ttt/total;
}
t1.setText(""+ctt);
t2.setText(""+mtt);
t3.setText(""+ett);
}
public void reset()
{
ctt = 0;
mtt = 0;
ett = 0;
ttt = 0;
total = 0;
}
public void changeWord()
{
if (bWord.getLabel().equals("¸í¾ðÀ¸·Î ¹Ù²Ù±â"))
{
words = sWords2;
bWord.setLabel("¼Ó´ãÀ¸·Î ¹Ù²Ù±â");
}
else
{
words = sWords;
bWord.setLabel("¸í¾ðÀ¸·Î ¹Ù²Ù±â");
}
}
public class ChangeWord implements ActionListener
{
public void actionPerformed(ActionEvent ae)
{
reset();
changeWord();
nextWord();
}
}
public class ShowLink implements ActionListener
{
public void actionPerformed(ActionEvent ae)
{
try
{
URL u = new URL("http://home.nownuri.net/~gresfa/index.html");
AppletContext text = getAppletContext();
text.showDocument(u);
}catch(Exception e)
{
showStatus("Error : " + e);
}
}
}
private class KeyHandler implements KeyListener
{
public void keyPressed(KeyEvent ke)
{
if (sFlag==false)
{
stime = new Date().getTime();
sFlag = true;
}
if ((ke.getKeyCode()==ke.VK_ENTER)&&(textShort1.getText().equals(textShort2.getText().trim())))
{
nextWord();
}
if (ke.getKeyCode()==ke.VK_BACK_SPACE)
{
count--;
}
}
public void keyReleased(KeyEvent ke)
{
if ((ke.getKeyCode()==ke.VK_SPACE)&&(textShort1.getText().equals(textShort2.getText().trim())))
{
nextWord();
}
count++;
if ( textShort2.getText().substring(0, textShort2.getText().length()-1)
.equals(textShort1.getText().substring(0, textShort2.getText().length()-1) ))
textShort1.setForeground(Color.black);
else
textShort1.setForeground(Color.red);
}
public void keyTyped(KeyEvent ke)
{
}
}
private class ActionHandler implements ActionListener
{
public void actionPerformed(ActionEvent ae)
{
reset();
nextWord();
}
}
}