paint°¡ ¾ÈµÇ¿ä!!


[ ´ÙÀ½ ±Ûµé ] [ À̾ ±Û¿Ã¸®±â(´äÇϱâ) ] [ ÀÚ¹Ù ¹¯°í ´äÇϱâ ]

±Û¾´ÀÌ :±èÀÎÅ 2000³â 6¿ù 14ÀÏ 15:19:32


ÅؽºÆ® Çʵ忡 ¹®ÀåÀ» ¾²°í ¿£Å͸¦ Ä¡¸é canvas¿¡ ÆùÆ®¿Í Ä÷¯¸¦ ÁöÁ¤Çؼ­


Ãâ·ÂÇØÁִ Ŭ·¡½º¸¦ ¸¸µé¾ú½À´Ï´Ù.


äÆà ¾ÖÇø´¿¡ »ç¿ëÇÒ·Á°í ¸¸µé¾ú´Âµ¥ °£´ÜÇÑ ¿¹Á¦¿¡¼­´Â Àß µ¹¾Æ°¡´Âµ¥


äÆþÖÇø´¿¡ ³ÖÀ¸¸é ¿©·¯°¡Áö ¹®Á¦°¡ ¹ß»ýÇÏ´õ±º¿ä.


1. createImageÇßÀ» ¶§ nullÀÌ ¹ÝȯµÈ´Ù´Â °ÍÀÔ´Ï´Ù.


2. validate()¸¦ ÇØÁ൵ ´Ù½Ã ±×¸®Áú ¾Ê´õ±º¿ä. ±×·¡¼­


°­Á¦·Î paint¸¦ ºÎ¸¦·Á°í getGraphics¸¦ Çß´õ´Ï ¿ª½Ã nullÀ»


¹ÝȯÇÏ´õ±º¿ä. getGraphics¸¦ ÇÒ ¶§ ±× ÄÄÆ÷³ÍÆ®°¡ È­¸é¿¡ º¸ÀÌÁö


¾ÊÀ»°æ¿ì nullÀ» ¹ÝȯÇÑ´Ù°í µé¾ú´Âµ¥ È­¸é¿¡ ºÐ¸íÈ÷ º¸¿©Áö°í Àְŵç¿ä.


3. ½ºÅ©·ÑÆгο¡ addÇÑ ÄÄÆ÷³ÍÆ®ÀÇ Å©±â°¡ Ä¿Áö¸é ½ºÅ©·Ñ¹Ù°¡ ÀÚµ¿À¸·Î


»ý°Ü¾ß µÇ´Â°Å ¾Æ´Ñ°¡¿ä.


4. ½ºÅ©·Ñ Æгο¡ setLayout(null)À» Çß´õ´Ï ¾Æ·¡¿Í °°Àº ¿¡·¯°¡ ³µ½À´Ï´Ù.


java.awt.AWTError: ScrollPane controls layout
at java/awt/ScrollPane.setLayout
at Applet1.jbInit
at Applet1.init
at com/ms/applet/AppletPanel.securedCall0
at com/ms/applet/AppletPanel.securedCall
at com/ms/applet/AppletPanel.processSentEvent
at com/ms/applet/AppletPanel.processSentEvent
at com/ms/applet/AppletPanel.run
at java/lang/Thread.run


1,2,3 ÀÇ ¹®Á¦Á¡Àº ´ÙÀ½ÀÇ °£´ÜÇÑ ¾ÖÇø´¿¡¼­´Â ÀüÇô ¹ß»ýÇÏÁö ¾Ê´õ±º¿ä.


http://space.snu.ac.kr/awt/z/index.html ¿¡ ¾Æ·¡ ¿¹Á¦¸¦ º¸½Ç ¼ö ÀÖ±¸¿ä


http://space.snu.ac.kr/awt/index.html ¿¡ äÆÃÇÁ·Î±×·¥À» º¸½Ç ¼ö ÀÖ½À´Ï´Ù.



import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.applet.*;


public class Frame1 extends Applet {
TextField tt = new TextField();
textpanel ss=new textpanel();
ScrollPane q=new ScrollPane(ScrollPane.SCROLLBARS_ALWAYS);
Adjustable yy;
public void init() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
public Frame1() {
}


//Component initialization
private void jbInit() throws Exception {
setLayout(null);
this.setSize(new Dimension(600, 400));
tt.setBounds(new Rectangle(0, 334, 494, 26));
q.setBounds(new Rectangle(0, 0, 494, 334));
add(tt, null);
add(q, null);
q.add(ss);
yy=q.getVAdjustable();
yy.setUnitIncrement(20);
}
public boolean action(Event e,Object arg){
if(e.target==tt){
ss.add(tt.getText());
tt.setText("");
q.validate();
q.setScrollPosition(0,yy.getMaximum());
}
return true;
}


public class textpanel extends Canvas {
int y=5;
int yy=5;
Vector str=new Vector();
Image img;
Graphics gc;
Dimension d;
int width, height;
int zxc;
Color[] col={ new Color(0,0,0),new Color(255,0,0),new Color(255,255,0),new Color(0,255,0),new Color(0,255,255),new Color(0,0,255),new Color(255,0,255)};
Font[] fo={new Font("Serif",Font.PLAIN,14),new Font("monospaced",Font.BOLD,10),new Font("dialog",Font.ITALIC,17),new Font("dialoginput",Font.PLAIN,11),new Font("SansSerif",Font.BOLD+Font.ITALIC,16)};

public textpanel() {
this.setBackground(Color.white);
}
public void add(String hh){
str.addElement(new data(hh,fo[zxc],col[zxc]));
++zxc;
if(zxc==5){
zxc=0;
}
width = (int)getSize().width;
height = (int)getSize().height;
if (img == null) {
d = getSize();
img = createImage(width, height);
}
if (d.width != width || d.height != height) {
d = getSize();
img = createImage(width, height);
}
gc = img.getGraphics();
gc.setColor(Color.white);
gc.fillRect(0, 0, width - 1, height - 1);
gc.setColor(Color.black);
int h=10;
int o=0;
int v=20;
int max=yy;
data zz;
FontMetrics f;
for(Enumeration e= str.elements(); e.hasMoreElements();){
zz=(data)e.nextElement();
h=10;
for(int i=0;i<zz.count;++i){
gc.setColor(zz.c[i]);
gc.setFont(zz.f[i]);
gc.drawString(zz.text[i],h,v);
f=gc.getFontMetrics(zz.f[i]);
h+=f.stringWidth(zz.text[i]);
}
f=gc.getFontMetrics(zz.f[0]);
v+=f.getHeight()+5;
if(h>max)
max=h;
}
if(y<v || yy!=max) {
y=v;
yy=max;
setSize(yy,y);
}
validate();
}
public void paint(Graphics g){
g.drawImage(img, 0, 0, this);
}
public class data {
int count;
String[] text={"",""};
Font[] f={null,null};
Color[] c={null,null};
public data(String aa, Font bb, Color cc){
count=1;
text[0]=aa;
f[0]=bb;
c[0]=cc;
}
}
}
}



´ÙÀ½ ±Ûµé:



À̾ ±Û¿Ã¸®±â(´äÇϱâ)

À̸§:
E-Mail:
Á¦¸ñ:
³»¿ë:
HTML ÅÂ±× Æ÷ÇÔ ¿©ºÎ: HTML ¹®¼­ÀÏ °æ¿ì üũ
°ü·Ã URL(¼±ÅÃ):
URL Á¦¸ñ(¼±ÅÃ):
°ü·Ã À̹ÌÁö URL:


[ ´ÙÀ½ ±Ûµé ] [ À̾ ±Û¿Ã¸®±â(´äÇϱâ) ] [ ÀÚ¹Ù ¹¯°í ´äÇϱâ ]