[Áú¹®] ½ºÀ®¹®Á¦...ÇïÇÁ ¹Ì


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

±Û¾´ÀÌ :±Ç¿µÁØ 1999³â 3¿ù 13ÀÏ 09:28:46

¾È³çÇϼ¼¿ä.
½ºÀ®À» °øºÎÇϴµ¥ swing1.1 À» ´Ù¿îÀ޾Ƽ­ ¼³Ä¡ Çߴµ¥,
¾ÐÃà¿ï Ǫ´Ï±î, swing-1.1µð·ºÅ丮¹Ø¿¡ swing.jar ¿Í
swingall.jar µîµîÀÌ »ý±â´Âµ¥, À̵ð·ºÅ丮 ÀÚü¸¦ jdk1.1.7B\lib\swing-1.1\
ÀÌ·±½ÄÀ¸·ÎµÎ°í, classpathµµ ±×·¸°Ô Àâ¾Ò½À´Ï´Ù.
¸Â°Ô ÀâÀº°Ì´Ï±î...
±×¸®°í Á¦°¡ jdk 1.1.7 À» »ç¿ëÇϴµ¥, swingÀ» µû·Î À¥¿¡¼­ ¹Þ¾Æ¼­
À§Ã³·³ Àâ¾ÆÁÖ´Â°Ô ¸Â´Â°Ç°¡¿ä.''


½ºÀ® Æ©Å丮¾óÀ» ´Ù¿î ¹Þ¾Æ¼­ ±× ¿¹Á¦¸¦ Çѹø ½ÇÇà½ÃÄÑ ºÃ´Âµ¥,
¿¡¶ó°¡ ³ª¼­ classpath¹®Á¦ÀÎÁö, ¾Æ´Ï¸é, ÄÚµåÀÚü¹®Á¦ÀÎÁö..
¿¡·¯¸Þ¼¼Áö¸¦ ºÁ¼­´Â ÄÚµåÀÚü¹®Á¦°¡ ¾Æ´Ñ°Í °°Àºµ¥...


´ÙÀ½Àº º»¹®°ú ¿¡·¯ ¸Þ¼¼ÁöÀÔ´Ï´Ù. kawa¿¡¼­ ÄÄÆÄÀÏ Çß½À´Ï´Ù.
µµ½º¿¡¼­ javac...Çصµ ¹°·Ð ¸¶Âù°¡ÁöÀÔ´Ï´Ù.


import com.sun.java.swing.*;
import java.awt.*;
import java.awt.event.*;


public class GlassPaneDemo {
static private MyGlassPane myGlassPane;


public static void main(String[] args) {
JFrame frame = new JFrame("GlassPaneDemo");


JRadioButton changeButton =
new JRadioButton("Glass pane \"visible\"");
changeButton.setSelected(false);
changeButton.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
myGlassPane.setVisible(e.getStateChange()
== ItemEvent.SELECTED);
}
});


myGlassPane = new MyGlassPane(changeButton);
frame.setGlassPane(myGlassPane);


Container contentPane = frame.getContentPane();
contentPane.setLayout(new FlowLayout());
contentPane.add(changeButton);
contentPane.add(new JButton("Button 1"));
contentPane.add(new JButton("Button 2"));


frame.pack();
frame.setVisible(true);


frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}


/**
* We have to provide our own glass pane so that it can paint.
*/
class MyGlassPane extends JComponent {
Point point = null;


public void paint(Graphics g) {
if (point != null) {
g.setColor(Color.red);
g.fillOval(point.x - 10, point.y - 10, 20, 20);
}
}


public void setPoint(Point p) {
point = p;
}


public MyGlassPane(AbstractButton aButton) {
//XXX: The following don't work. Explain why.
//setForeground(Color.red);
//setBackground(Color.red);


RBListener listener = new RBListener(aButton, this);
addMouseListener(listener);
addMouseMotionListener(listener);
}
}


/**
* Listen for all events that our radio button is likely to be
* interested in. Redispatch them to the radio button.
* If this were a real app, we'd probably do something about
* key events.
*/
class RBListener extends MouseMotionAdapter
implements MouseListener {
Toolkit toolkit;
Component liveOne;
MyGlassPane glassPane;
boolean inButtonDrag = false;


public RBListener(Component live, MyGlassPane pane) {
toolkit = Toolkit.getDefaultToolkit();
liveOne = live;
glassPane = pane;
}


public void mouseMoved(MouseEvent e) {
redispatchMouseEvent(e, false);
}


/*
* We must forward at least the mouse drags that started
* with mouse presses over the radio button. Otherwise,
* when the user presses the radio button then drags off,
* the radio button isn't disarmed -- it keeps its dark
* gray background or whatever its L&F uses to indicate
* that the button is currently being pressed.
*/
public void mouseDragged(MouseEvent e) {
redispatchMouseEvent(e, false);
}


public void mouseClicked(MouseEvent e) {
redispatchMouseEvent(e, false);
}


public void mouseEntered(MouseEvent e) {
redispatchMouseEvent(e, false);
}


public void mouseExited(MouseEvent e) {
redispatchMouseEvent(e, false);
}


public void mousePressed(MouseEvent e) {
redispatchMouseEvent(e, false);
}


public void mouseReleased(MouseEvent e) {
redispatchMouseEvent(e, true);
inButtonDrag = false;
}


private void redispatchMouseEvent(MouseEvent e,
boolean repaint) {
Point panePoint = e.getPoint();
Point buttonPoint = SwingUtilities.convertPoint(
glassPane,
panePoint,
liveOne);


boolean inButton = liveOne.contains(buttonPoint);
int eventID = e.getID();


if (inButton && (eventID == MouseEvent.MOUSE_PRESSED)) {
inButtonDrag = true;
}


if (inButton || inButtonDrag) {
liveOne.dispatchEvent(new MouseEvent(liveOne,
eventID,
e.getWhen(),
e.getModifiers(),
buttonPoint.x,
buttonPoint.y,
e.getClickCount(),
e.isPopupTrigger()));
}


if (repaint) {
toolkit.beep();
glassPane.setPoint(panePoint);
glassPane.repaint();
}
}
}



¿¡·¹¸Þ¼¼Áö..


GlassPaneDemo.java:0:0:0:0:


Warning: "c:\jdk1.1.7B\lib\sing-1.1\swingall.jar" is either not a valid zip file or it contains a zip file comment. If it contains a comment, rezip it without the comment...


GlassPaneDemo.java:1:8:1:25:


Error: Could not find package named:


./com/sun/java/swing,


c:\jdk1.1.7B\lib\classes.zip(com/sun/java/swing),


c:\jdk1.1.7B\lib\swing-1.1\swing.jar(com/sun/java/swing),


c:\jdk1.2\jdbc-odbc\/com/sun/java/swing,


c:\jsdk2.0\lib\jsdk.jar(com/sun/java/swing),


c:\notes\JdbcSql\lib\JdbcDomino.jar(com/sun/java/swing),


c:\notes\JdbcSql\lib\notesjdbc.jar(com/sun/java/swing) or


C:\Program Files\Kawa\classes.zip(com/sun/java/swing)


GlassPaneDemo.java:9:9:9:14:


Error: Type JFrame was not found


GlassPaneDemo.java:9:24:9:50:


Error: No match was found for constructor "JFrame(java.lang.String)"


GlassPaneDemo.java:11:9:11:20:


Error: Type JRadioButton was not found


GlassPaneDemo.java:12:17:12:58:


Error: No match was found for constructor "JRadioButton(java.lang.String)"


GlassPaneDemo.java:16:17:17:61:


Error: No match was found for method "setVisible(boolean)"


GlassPaneDemo.java:21:23:21:51:


Error: No match was found for constructor "MyGlassPane(JRadioButton)"


GlassPaneDemo.java:26:9:26:37:


Error: No match was found for method "add(JRadioButton)"


GlassPaneDemo.java:27:9:27:48:


Error: No match was found for method "add(JButton)"


GlassPaneDemo.java:27:25:27:47:


Error: No match was found for constructor "JButton(java.lang.String)"


GlassPaneDemo.java:27:29:27:35:


Error: Type JButton was not found


GlassPaneDemo.java:28:9:28:48:


Error: No match was found for method "add(JButton)"


GlassPaneDemo.java:28:25:28:47:


Error: No match was found for constructor "JButton(java.lang.String)"


GlassPaneDemo.java:44:27:44:36:


Error: Type JComponent was not found


GlassPaneDemo.java:58:24:58:37:


Error: Type AbstractButton was not found


GlassPaneDemo.java:63:31:63:59:


Error: No match was found for constructor "RBListener(AbstractButton, MyGlassPane)"


GlassPaneDemo.java:64:9:64:34:


Error: No match was found for method "addMouseListener(RBListener)"


GlassPaneDemo.java:65:9:65:40:


Error: No match was found for method "addMouseMotionListener(RBListener)"


GlassPaneDemo.java:128:29:128:42:


Error: "SwingUtilities" is either a misplaced package name or a non-existent entity.


GlassPaneDemo.java:154:13:154:31:


Error: No match was found for method "repaint()"


´ÙÀ½ ±Ûµé:



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

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


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