±Û¾´ÀÌ :¹é¹ÎÈ£ 2000³â 3¿ù 06ÀÏ 21:45:36
¾ÖÇø´¿¡¼ ´õºí¹öÆÛ¸µÀ» »ç¿ëÇؼ ±×¸²À» ±×·È½À´Ï´Ù. ScrollPane¿¡ Canvas¸¦ ¿Ã·Á³õ°í, Canavs¿¡ ¶óº§45°³¸¦ ´õºí¹öÆÛ¸µÀ» »ç¿ëÇؼ ±×·È½À´Ï´Ù. ·ÎÄÃÄÄÇ»ÅÍ¿¡¼ ¾ÖÇø´À» ½ÇÇàÇÏ¸é ¶³¸²ÀÌ ¾ø´Âµ¥, ¾ÖÇø´À» ´Ù¸§ ÄÄÇ»ÅÍ¿¡ ³õ°í ½ÇÇàÇϸé Scrollbar¸¦ ¿òÁ÷À϶§¸¶´Ù ¶³¸²ÀÌ ½ÉÇÏ°Ô »ý±é´Ï´Ù.
Ȥ½Ã ÀÌ·± °æÇè ÀÖÀ¸½ÅºÐ ÀÖÀ¸¸é, ¾î¶»°Ô ÇØ°áÇϼ̴ÂÁö °¡¸£ÃÄÁÖ¼ÌÀ¸¸é ÇÕ´Ï´Ù.
¾Æ·¡ ¼Ò½ºÀÔ´Ï´Ù.
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class VSApplet extends Applet {
VStock vstock = new VStock();
public void init(){
setLayout(null);
setSize(700,500);
createGui();
}
public void createGui() { // VSApplet¿¡¼´Â VStock ÀÇ Ä˹ö½º¸¸À» ScrollPane¿¡ ºÙÀÌ´Â ¿ªÇÒÀ» ÇÑ´Ù.
ScrollPane sp = new ScrollPane();
sp.setSize(715,500);
add(sp);
sp.add(vstock);
}
public void paint(Graphics g) {
}
public static void main(String args[]) {
VSApplet vsa = new VSApplet();
Frame f = new Frame("VS±×·¡ÇÁ");
vsa.init();
f.add(vsa,"Center");
f.setSize(720,500);
f.setVisible(true);
}
}
class VStock extends Canvas {
Graphics gg;
boolean check = true;
Graphics offgraphics;
Dimension offscreensize;
Image offscreen;
int itemCount = 45;
String [] vData = {"Á¾Á¾Á¾","³ì³ì³ì³ì","AAAA","BBBBB","CCCCC","DDDD","EEEE","FFFF","GGGG","HHHH","IIII"," JJJJ",
"KKKK","LLLL","MMMMMM","NNNNNN","OOOO"," PPPP","QQQQ","RRRR","ÇöÇöÇöÇö","¿ì¿ì¿ì¿ì","ÇÑÇÑÇÑÇÑ","±¹±¹±¹±¹",
"SSSS","TTTT","UUUU","VVVV","WWWWW","XXXXXX","YYYY","ZZZZ","»ó»ó»ó»ó","½Å½Å½Å½Å","´ë´ë´ë´ë","»ï»ï»ï»ï",
"Á¦Á¦젲Á¦Á¦","±Ù±Ù±Ù±Ù","ÈÈÈÈÈ","¹Ì¹Ì¹Ì¹Ì","Á¦Á¦Á¦Á¦","ºÎºÎºÎºÎ","¿ì¿ì¿ì¿ì","ÅÂÅÂÅÂÅÂÅÂ","ÈÈÈÈ","¾à¾à¾à¾à"};
int [] dataPosition = { 3,3,3,3,1,2,5,6,7,5,5,3,3,3,3,1,8,8,4,2, 5,7,2,4,7,2,6,6,6,6 ,6,6,6,6,6,6,6,6,6,6,4,2,4,1,3};
public VStock() {
setSize(700,1000);
}
public void repaint(Graphics g){ // repaint()¸¦ ¿À¹ö¶óÀ̵å ÇßÁö¸¸ ScrollPane¿¡¼ ¹Ù·Î paint¸¦ È£ÃâÇϱ⠶§¹®¿¡
paint(g); // È¿°ú°¡ ¾ø´Ù.
System.out.println("HHHHHHJJJJJJJJJJ");
}
public void paint(Graphics g) {
if(offscreen == null) display(g); // offscreenÀ» óÀ½¿¡ ±×¸®°í ±× À½¿¡ paint¸Þ½îµå°¡ È£ÃâµÇ¸é
else g.drawImage(offscreen,0,0,null); // ±×Àü¿¡ °¡Áö°í ÀÖ´ø offscreen°´Ã¼¸¦ ¹Ù·Î »Ñ·ÁÁÜÀ¸·¯½á ¿¬»ê½Ã°£À» ÁÙÀδÙ.
}
public void display(Graphics g) {
Dimension d = getSize();
if ((offscreen == null) || (d.width != offscreensize.width) || (d.height != offscreensize.height) ) {
offscreen = createImage(d.width, d.height);
offscreensize = d;
offgraphics = offscreen.getGraphics();
}
offgraphics.clearRect(0,0,offscreensize.width,offscreensize.height);
FontMetrics fm = offgraphics.getFontMetrics();
for(int i = 1 ; i < itemCount+1 ; i++){ // °¡·ÎÁÙ ±×¸®±â..
Integer lineNumber = new Integer(i); // °¡·ÎÁÙ ±×¸®±â...
offgraphics.drawLine(60,i*25,680,i*25); // °¡·ÎÁÙ ±×¸®±â...
offgraphics.drawString(lineNumber.toString() ,30,i*25+5); // °¡·ÎÁÙ ±×¸®±â...
}
for(int i = 1 ; i < itemCount+1 ; i++){ // ¼¼·ÎÁÙ ±×¸®±â
offgraphics.drawLine( i*79 +15 ,20,i*79 +15 ,itemCount*25+7); // ¼¼·ÎÁÙ ±×¸®±â
} // ¼¼·ÎÁÙ ±×¸®±â
for(int i = 0; i<itemCount ; i++) { // item labelÀ» ±×¸®±â À§ÇÑ ¸Þ¼ÒµåÈ£Ãâ
paintItem(offgraphics, vData[i], dataPosition[i],i+1, fm); // vData´Â ¶óº§ÀÇ À̸§ÀÌ°í, dataPositionÀº ¶óº§µéÀÇ ¼¼·ÎÀ§Ä¡¸¦ °¡Áö´Â ¹è¿
for(int j=0;j<1000;j++); // ¿©±â¿¡¼´Â for¹®ÀÌ ¾Æ¹«Àǹ̰¡ ¾øÁö¸¸ Á¦°¡ ¸¸µçÇÁ·Î±×·¥¿¡¼´Â ´Ù¸¥ ¿¬»êÀ» Çϱ⶧¹®¿¡, ¿©±â¿¡µµ
// for ¹®À» µÎ¾î¼ interval timeÀ» µÎ¾ú½À´Ï´Ù.
}
g.drawImage(offscreen,0,0,null);
}
public void paintItem(Graphics g, String name , int x , int y, FontMetrics fm ) {
int w = fm.stringWidth(name)+10; // paintItem ¸Þ½îµå¿¡¼´Â ¶óº§À» ±×¸®°í Å׵θ®¸¦ ±×¸°´Ù.
int h = fm.getHeight()+4;
g.setColor(Color.white);
g.fillRect(x*79-25, y*25-10, 80, 18);
g.setColor(Color.pink);
g.drawRect(x*79-25, y*25-10, 79, 17);
g.setColor(Color.black);
g.drawString(name, x*79 - w/2 + 20, y*25 - h/2 + 15);
}
}
/*
<body>
<applet CODEBASE="http://000.000.000.000/~aroma" code=VSApplet.class width=710 height=500 >
</applet>
</body>
*/