Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ʼþÇý¶¯³ÌÐòÉè¼Æ
 
  4694  次浏览      27
 2018-1-11 
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚcsdn£¬Ö÷ÒªÔËÓÃÁËjava³ÌÐòʵÄһЩʼþ£¬ÒÔ¼°ÄÚ²¿Àà

ʼþºÍʼþÔ´

ÔËÐÐjavaͼÐÎÓû§½çÃæ³ÌÐòʱ,³ÌÐòÓëÓû§½øÐн»»¥,ʼþÇý¶¯³ÌÐòµÄÖ´ÐÐ.ʼþ(event)¿ÉÒÔ¶¨ÒåΪ³ÌÐò·¢ÉúÁËijЩÊÂÇéµÄÐźÅ.ÍⲿÓû§¶¯×÷ºÍÄÚ²¿³ÌÐò¶¯×÷¶¼¿ÉÒÔ´¥·¢Ê¼þ,ÍⲿÓû§¶¯×÷µÄÀý×ÓÓÐÒÆ¶¯Êó±ê,µã»÷°´Å¥ºÍÇû÷¼üÅ̵È,¶øÄÚ²¿³ÌÐò¶¯×÷µÄÀý×ÓÓж¨Ê±Æ÷.³ÌÐò¿ÉÒÔÑ¡ÔñÏìӦʼþ»òºöÂÔʼþ.

ÄÜ´´½¨Ò»¸öʼþ²¢´¥·¢¸ÃʼþµÄ×é¼þ³ÆÎªÔ´¶ÔÏó(source object)»òÔ´×é¼þ(source component).ÀýÈç,°´Å¥Êǰ´Å¥µã»÷¶¯×÷ʼþµÄÔ´¶ÔÏó.Ò»¸öʼþÊÇʼþÀàµÄʵÀý.ʼþÀàµÄ¸ùÀàÊÇjava.util.EventObject.

ʼþ¶ÔÏó°üº¬ÓëÊÂÎïÏà¹ØµÄÒ»ÇÐÊôÐÔ.¿ÉÒÔʹÓÃEventObjectÀàÖеÄʵÀý·½·¨getSource()»ñµÃʼþµÄÔ´¶ÔÏó.EventObjectÀàµÄ×ÓÀà´¦ÀíÌØ¶¨ÀàÐ͵Äʼþ,ÀýÈç,¶¯×÷ʼþ,´°¿Úʼþ,×é¼þʼþ,Êó±êʼþÒÔ¼°°´¼üʼþ.

Íⲿ¶¯×÷Óû§,Ô´¶ÔÏóºÍʼþÀàÐÍ

×¢Òâ:Èç¹ûÒ»¸ö×é¼þ¿ÉÒÔ´¥·¢Ä³¸öʼþ,ÄÇôÕâ¸ö×é¼þµÄÈÎÒâ×ÓÀà¶¼¿ÉÒÔ´¥·¢Í¬ÀàÐ͵Äʼþ.ÀýÈç,ÿ¸öGUI×é¼þ¶¼¿ÉÒÔ´¥·¢MouseEvent,KeyEvent,FocusEventºÍComponentEvent£¬ÒòΪComponentÊÇËùÓÐGUI×é¼þµÄ¸¸Àà.

×¢Òâ:ÉÏͼ³ýÁËListSelectionEventºÍChangeEventÖ®ÍâµÄËùÓÐʼþÀà¶¼°üÀ¨ÔÚjava.awt.event°üÖÐ,ListSelectionEventºÍChangeEventÔÚjavax.swing.event°üÖÐ.AWTÊÇΪAWT×é¼þÉè¼ÆµÄ,µ«ÊÇÐí¶àSwing×é¼þ¶¼»á´¥·¢ËüÃÇ.

¼àÌýÆ÷,×¢²áÒÔ¼°´¦Àíʼþ

JavaʹÓÃÒ»ÖÖ»ùÓÚίÍеÄÄ£ÐÍÀ´´¦Àíʼþ:Ô´¶ÔÏó´¥·¢Ò»¸öʼþ,¶Ô´Ëʼþ¸ÐÐËȤµÄ¶ÔÏó»á´¦ÀíËü.½«¶Ô´Ëʼþ¸ÐÐËȤµÄ¶ÔÏó³ÆÎª¼àÌýÆ÷(listener).Ò»¸ö¶ÔÏóÒª³ÉΪԴ¶ÔÏóÉϵÄʼþ¼àÌýÆ÷,ÐèÒª¾ß±¸Á½¸öÌõ¼þ:

1.¼àÌýÆ÷¶ÔÏóµÄÀà±ØÐëÊÇÏàÓ¦µÄʼþ¼àÌýÆ÷½Ó¿ÚµÄʵÀý,ÒÔÈ·±£¼àÌýÆ÷Óд¦ÀíÕâ¸öʼþµÄÕýÈ··½·¨.JavaΪÿһÖÖÀàÐ͵Äʼþ¶¼Ìṩ¸ö¼àÌýÆ÷½Ó¿Ú.ͨ³£,ʼþXEventµÄ¼àÌýÆ÷½Ó¿ÚÃüÃûΪXListener,¼àÌýÆ÷MouseMotionListenerÀýÍâ.ÀýÈç,ʼþActionEvent¶ÔÓ¦µÄ¼àÌýÆ÷½Ó¿ÚÊÇActionListener,ActionEventµÄÿ¸ö¼àÌýÆ÷¶¼Òò¸ÃʵÏÖActionListener½Ó¿Ú.ʼþÀàÐÍ,¶ÔÓ¦µÄ¼àÌýÆ÷½Ó¿ÚÒÔ¼°¶¨ÒåÔÚ¼àÌýÆ÷½Ó¿ÚÖеķ½·¨.°üº¬´¦ÀíʼþµÄ¼àÌýÆ÷½Ó¿Ú³ÆÎª´¦ÀíÆ÷(handler)µÄ·½·¨.

2.¼àÌýÆ÷¶ÔÏó±ØÐëÓÉÔ´¶ÔÏó×¢²á.×¢²á·½·¨ÒÀÀµÓëʼþµÄÀàÐÍ.Èç¹ûʼþÀàÐÍÊÇActionEvent,ÄÇô¶ÔÓ¦µÄ×¢²á·½·¨ÊÇaddActionListener.Ò»°ãÀ´Ëµ,XEventµÄ×¢²á·½·¨ÃüÃûΪaddXListener.Ò»¸öÔ´¶ÔÏó¿ÉÒÔ´¥·¢¼¸ÖÖÀàÐ͵Äʼþ.Ò»¸öÔ´¶ÔÏóÕë¶Ôÿ¸öʼþ¶¼Î¬»¤×ÅÒ»¸ö×¢²áµÄ¼àÌýÆ÷Áбí,ͨ¹ýµ÷ÓüàÌýÆ÷¶ÔÏóÉϵĴ¦ÀíÆ÷À´Í¨ÖªËùÓÐ×¢²áµÄ¼àÌýÆ÷ÏìÓ¦Õâ¸öʼþ,

JButton jbtOK = new JButton("OK");
ActionListener listener1 = new OKListenerClass();
jbtOK.addActionListener(listener1);

µã»÷¸Ã°´Å¥Ê±,JButton¶ÔÏó´¥·¢Ò»¸öActionEvent£¬È»ºó½«Ëü×÷Ϊ²ÎÊý´«µÝÒÔµ÷ÓüàÌýÆ÷µÄactionPerformed·½·¨À´´¦ÀíÕâ¸öʼþ

ʼþ,ʼþ¼àÌýÆ÷ºÍ¼àÌýÆ÷·½·¨

ÏÖÔÚÎÒÃÇ¿ÉÒÔ±àдһ¸ö³ÌÐò,ʹÓÃÁ½¸ö°´Å¥¿ØÖÆÒ»¸öÔ²µÄ´óС

**ControlCircle1.java´úÂë:**
package chapter16;
import javax.swing.*;
import java.awt.*;
public class ControlCircle1 extends JFrame
{
/**
*
*/
private static final long serialVersionUID = 1L;
private JButton jbtEnlarge = new JButton("Enlarge");
private JButton jbtShrink = new JButton("Shrink");
private CirclePanel canvas = new CirclePanel();

public ControlCircle1()
{
JPanel panel = new JPanel();//Use the panel to group buttons
panel.add(jbtEnlarge);
panel.add(jbtShrink);

this.add(canvas,BorderLayout.CENTER);//Add canvas to center
this.add(panel, BorderLayout.SOUTH);//Add buttons to the frame
}

public static void main(String[] args)
{
JFrame frame = new ControlCircle1();
frame.setTitle("ControlCircle1");
frame.setLocationRelativeTo(null);
frame.setSize(200, 200);
frame.setVisible(true);
}
}

class CirclePanel extends JPanel
{
/**
*
*/
private static final long serialVersionUID = 1L;
private int radius = 5;//Default circle radius

/*RepaintÖØ»­ the circle*/
protected void paintComponent(Graphics g)
{
super.paintComponent(g);
g.drawOval(getWidth()/2-radius, getHeight()/2-radius, 2*radius, 2*radius);
}
}

ÔËÐнá¹û,µ«²»ÄÜÀ©´óËõСԲµÄ´óС:

ÈçºÎʹÓð´Å¥·Å´óºÍËõСÕâ¸öÔ²ÄØ?µ±µã»÷Enlarge°´Å¥Ê±£¬Ï£ÍûÄÜÓÃÒ»¸ö±È½Ï´óµÄ°ë¾¶À´ÖØÐ»æÖÆÕâ¸öÔ²¡£¸ÃÈçºÎÍê³ÉËüÄØ?

1.¶¨ÒåÒ»¸öÃûΪEnlargeListenerµÄ¼àÌýÆ÷Àà,ʵÏÖActionListener.

2.´´½¨Ò»¸ö¼àÌýÆ÷,²¢ÇÒ½«Ëü×¢²áµ½jdtEnlarge.

3.ÔÚCirclePanelÖÐÌí¼ÓÒ»¸öÃûΪenlarge()µÄ·½·¨À´Ôö¼Ó°ë¾¶,È»ºóÖØÐ»æÖÆÃæ°å.

4.ʵÏÖEnlargeListenerÖеÄactionPerformed·½·¨À´µ÷ÓÃcanvas.enlarge().

5.ΪÁËÈÃactionPerformed·½·¨¿ÉÒÔ·ÃÎÊÒýÓñäÁ¿canvas,½«EnlargeListener¶¨ÒåΪControlCircle2ÀàµÄÄÚ²¿Àà.ÄÚ²¿ÀඨÒåÔÚÁíÒ»¸öÀàÖÐ

6.ΪÁ˱ÜÃâ±àÒë´íÎó,CirclePanelÀàÏÖÔÚÒ²¶¨ÒåΪControlCircle2µÄÒ»¸öÄÚ²¿Àà.

package chapter16;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class ControlCircle2 extends JFrame
{
private static final long serialVersionUID = 1L;
private JButton jbtEnlarge = new JButton("Enlarge");
private JButton jbtShrink = new JButton("Shrink");
private CirclePanel canvas = new CirclePanel();

public ControlCircle2()
{
JPanel panel = new JPanel();
panel.add(jbtEnlarge);
panel.add(jbtShrink);

this.add(canvas,BorderLayout.CENTER);//Add canvas to center
this.add(panel, BorderLayout.SOUTH);//Add buttons to the frame

jbtEnlarge.addActionListener(new EnlargeListener());
}

public static void main(String[] args)
{
JFrame frame = new ControlCircle2();
frame.setTitle("ControlCircle2");
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200, 200);
frame.setVisible(true);
}

class EnlargeListener implements ActionListener//Inner class
{
public void actionPerformed(ActionEvent e)
{
canvas.enlarge();
}
}

class CirclePanel extends JPanel//Inner class
{
private static final long serialVersionUID = 1L;
private int radius = 5;//Default circle radius

/*Enlarge the circle*/
public void enlarge()
{
radius++;
repaint();
}

/*Repaint the circle*/
protected void paintComponent(Graphics g)
{
super.paintComponent(g);
g.drawOval(getWidth()/2-radius, getHeight()/2-radius, 2*radius, 2*radius);
}
}
}

ÄÚ²¿Àà

ÄÚ²¿Àà(inner class)»òÕßDZÌ×Àà(nested class)ÊǶ¨ÒåÔÚÁíÒ»¸öÀàµÄ·¶Î§µÄÀà.ÈçÏÂͼaÖеĴúÂ붨ÒåÁËÁ½¸ö¶ÀÁ¢µÄÀà:TestºÍA.ͼbµÄ´úÂ붨ÒåAΪTestµÄÒ»¸öÄÚ²¿Àà.

ͼcÖж¨ÒåÔÚOuterClassÖеÄInnerClassÀàÊÇÄÚ²¿ÀàµÄÁíÒ»¸öÀý×Ó.ÄÚ²¿Àà¿ÉÒÔÏñ³£¹æÀàÒ»ÑùʹÓÃ.ͨ³£,Èç¹ûÄÚ²¿ÀàÖ»ÊDZ»ÍⲿÀàʹÓÃ,ÄǾͽ«¸ÃÀඨÒåΪÄÚ²¿Àà.Ò»¸öÄÚ²¿ÀàÓÐÈçÏÂÌØÕ÷:

1.Ò»¸öÄÚ²¿Àà±»±àÒë³ÉÒ»¸öÃûΪOuterClassName$InnerClassName.classµÄÀà.ÀýÈç,ÔÚͼbÖÐTestÖеÄÄÚ²¿ÀàA±»±àÒë³ÉTest$A.class

2.ÄÚ²¿Àà¿ÉÒÔÒýÓö¨ÒåÔÚËüǶÌ×µÄÍⲿÀàÖеÄÊý¾ÝºÍ·½·¨,ËùÒÔ,²»ÐèÒª½«ÍⲿÀà¶ÔÏóµÄÒýÓô«µÝ¸öÄÚ²¿ÀàµÄ¹¹Ôì·½·¨.ÒòΪÕâ¸öÔ­Òò,ÄÚ²¿Àà¿ÉÒÔʹ³ÌÐò¸ü¼Ó¼òµ¥ºÍ¼ò½à.

3.ʹÓÿɼûÐÔÐÞÊηû¶¨ÒåÄÚ²¿Ààʱ,×ñ´ÓºÍÓ¦ÓÃÓëÔÚÀà³ÉÔ±ÉÏÒ»ÑùµÄ¿É¼ûÐÔ¹æÔò.

4.¿ÉÒÔ½«ÄÚ²¿ÀඨÒåΪstatic,Ò»¸östaticÄÚ²¿Àà¿ÉÒÔʹÓÃÍⲿÀàµÄÃû×Ö·ÃÎÊ.Ò»¸östaticÀàÊDz»ÄÜ·ÃÎÊÍⲿÀàµÄ·Ç¾²Ì¬³ÉÔ±µÄ.

5.ÄÚ²¿ÀàµÄ¶ÔÏó¾­³£ÔÚÍⲿÀàÖд´½¨.µ«ÊÇ,Ò²¿ÉÒÔ´ÓÁíÒ»¸öÀàÖд´½¨Ò»¸öÄÚ²¿ÀàµÄ¶ÔÏó¡£Èç¹û¸ÃÄÚ²¿ÀàÊǷǾ²Ì¬µÄ,¾Í±ØÐëÏÈ´´½¨Ò»¸öÍⲿÀàµÄʵÀý,È»ºóʹÓÃÏÂÃæµÄÓï·¨´´½¨Ò»¸öÄÚ²¿ÀàµÄ¶ÔÏó:

OuterClass.InnerClass innerObject = outerObject.new InnerClass();

Èç¹ûÄÚ²¿ÀàÊǾ²Ì¬µÄ,ÄÇôʹÓÃÏÂÃæµÄÓ﷨ΪËü´´½¨Ò»¸ö¶ÔÏó:

OuterClass.InnerClass innerObject = new OuterClass.InnerClass();
   
4694 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

ÆóÒµ¼Ü¹¹¡¢TOGAFÓëArchiMate¸ÅÀÀ
¼Ü¹¹Ê¦Ö®Â·-ÈçºÎ×öºÃÒµÎñ½¨Ä££¿
´óÐÍÍøÕ¾µçÉÌÍøÕ¾¼Ü¹¹°¸ÀýºÍ¼¼Êõ¼Ü¹¹µÄʾÀý
ÍêÕûµÄArchimateÊÓµãÖ¸ÄÏ£¨°üÀ¨Ê¾Àý£©
Ïà¹ØÎĵµ

Êý¾ÝÖÐ̨¼¼Êõ¼Ü¹¹·½·¨ÂÛÓëʵ¼ù
ÊÊÓÃArchiMate¡¢EA ºÍ iSpace½øÐÐÆóÒµ¼Ü¹¹½¨Ä£
ZachmanÆóÒµ¼Ü¹¹¿ò¼Ü¼ò½é
ÆóÒµ¼Ü¹¹ÈÃSOAÂ䵨
Ïà¹Ø¿Î³Ì

ÔÆÆ½Ì¨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ÖÐ̨սÂÔ¡¢ÖÐ̨½¨ÉèÓëÊý×ÖÉÌÒµ
ÒÚ¼¶Óû§¸ß²¢·¢¡¢¸ß¿ÉÓÃϵͳ¼Ü¹¹
¸ß¿ÉÓ÷ֲ¼Ê½¼Ü¹¹Éè¼ÆÓëʵ¼ù