JavaTM 2 Platform
Standard Ed. 5.0

javax.swing.table
Ŭ·¡½º AbstractTableModel

java.lang.Object 
  »óÀ§¸¦ È®Àå javax.swing.table.AbstractTableModel
¸ðµç ±¸ÇöµÈ ÀÎÅÍÆäÀ̽º:
Serializable, TableModel
¾Ë·ÁÁø Á÷°è ¼­ºê Ŭ·¡½º:
DefaultTableModel

public abstract class AbstractTableModel
extends Object
implements TableModel, Serializable

ÀÌ Ãß»ó Ŭ·¡½º´Â TableModelÀÎÅÍÆäÀ̽ºÀÇ ´ëºÎºÐÀÇ ¸Þ¼­µåÀÇ µðÆúÆ®ÀÇ ±¸ÇöÀ» Á¦°øÇÕ´Ï´Ù. ÀÌ Å¬·¡½º´Â ¸®½º³Ê¸¦ °ü¸®ÇÏ´Â °Í ¿Ü¿¡TableModelEvents¸¦ »ý¼ºÇØ, ±×°ÍµéÀ» ¸®½º³Ê¿¡°Ô µð½ºÆÐÄ¡Çϱâ À§ÇÑ ±â´ÉÀ» Á¦°øÇÕ´Ï´Ù. ±¸»ó TableModelÀ» AbstractTableModel ¼­ºê Ŭ·¡½º·Î¼­ ÀÛ¼ºÇÏ·Á¸é, ¾Æ·¡ÀÇ 3°³ÀÇ ¸Þ¼­µåÀÇ ±¸ÇöÀ» Á¦°øÇØ ÁÖ¼¼¿ä.

 public int getRowCount();
 public int getColumnCount();
 public Object getValueAt(int row, int column);
 

°æ°í: ÀÌ Å¬·¡½ºÀÇ Á÷·ÄÈ­ µÈ °´Ã¼´Â ÇâÈÄÀÇ Swing ¸±¸®Áî¿Í ȣȯµÇÁö ¾ÊÀ» ¿¹Á¤ÀÔ´Ï´Ù. ÇöÀçÀÇ Á÷·ÄÈ­ÀÇ Áö¿øÀº ´Ü±â°£ÀÇ ¿î¿ëÀ̳ª, °°Àº ¹öÀüÀÇ Swing¸¦ ½ÇÇàÇÏ´Â ¾îÇø®ÄÉÀ̼ǰ£ÀÇ RMI¿¡ ÀûÀýÇÏ°í ÀÖ½À´Ï´Ù. JDK ¹öÀü 1.4 ÀÌÈÄ, ¸ðµç JavaBeansTM Àå±â°£ÀÇ ¿î¿ë Áö¿øÀº java.beans ÆÐÅ°Áö¿¡ Ãß°¡µÇ°í ÀÖ½À´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº XMLEncoder¸¦ ÂüÁ¶ÇϽʽÿÀ.


ÇÊµå °³¿ä
protected  EventListenerList listenerList
          ¸®½º³ÊÀÇ ¸®½ºÆ®ÀÔ´Ï´Ù.
 
»ý¼ºÀÚ °³¿ä
AbstractTableModel ()
           
 
¸Þ¼­µå °³¿ä
 void addTableModelListener (TableModelListener  l)
          µ¥ÀÌÅÍ ¸ðµ¨ º¯°æ½ÃÀÇ ÅëÁö ´ë»ó ¸®½ºÆ®¿¡ ¸®½º³Ê¸¦ Ãß°¡ÇÕ´Ï´Ù.
 int findColumn (String  columnName)
          ÁöÁ¤µÈ À̸§ÀÇ ¿­À» ¸®ÅÏÇÕ´Ï´Ù.
 void fireTableCellUpdated (int row, int column)
          [row, column]¿¡ ÀÖ´Â ¼¿ÀÇ °ªÀÌ °»½ÅµÈ °ÍÀ» ¸ðµç ¸®½º³Ê¿¡°Ô ÅëÁöÇÕ´Ï´Ù.
 void fireTableChanged (TableModelEvent  e)
          ÀÌ Å×ÀÌºí ¸ðµ¨ÀÇ ¸®½º³Ê·Î¼­ µî·ÏµÇ¾î ¸ðµç TableModelListeners¿¡ ÁöÁ¤µÈ ÅëÁö À̺¥Æ®¸¦ Àü¼Û ÇÕ´Ï´Ù.
 void fireTableDataChanged ()
          Å×À̺íÀÇ ÇàÀÇ ¸ðµç ¼¿°ªÀÌ º¯°æµÇ°í ÀÖÀ» °¡´É¼ºÀÌ ÀÖ´Â °ÍÀ» ¸ðµç ¸®½º³Ê¿¡°Ô ÅëÁöÇÕ´Ï´Ù.
 void fireTableRowsDeleted (int firstRow, int lastRow)
          [firstRow, lastRow] ¹üÀ§ (¾î´À ÂÊÀÇ °ªµµ Æ÷ÇÔÇÑ´Ù)¿¡¼­ ÇàÀÌ »èÁ¦µÈ °ÍÀ» ¸ðµç ¸®½º³Ê¿¡°Ô ÅëÁöÇÕ´Ï´Ù.
 void fireTableRowsInserted (int firstRow, int lastRow)
          [firstRow, lastRow] ¹üÀ§ (¾î´À ÂÊÀÇ °ªµµ Æ÷ÇÔÇÑ´Ù)¿¡¼­ ÇàÀÌ »ðÀÔµÈ °ÍÀ» ¸ðµç ¸®½º³Ê¿¡°Ô ÅëÁöÇÕ´Ï´Ù.
 void fireTableRowsUpdated (int firstRow, int lastRow)
          [firstRow, lastRow] ¹üÀ§ (¾î´À ÂÊÀÇ °ªµµ Æ÷ÇÔÇÑ´Ù)¿¡¼­ ÇàÀÌ °»½ÅµÈ °ÍÀ» ¸ðµç ¸®½º³Ê¿¡°Ô ÅëÁöÇÕ´Ï´Ù.
 void fireTableStructureChanged ()
          Å×À̺íÀÇ ±¸Á¶°¡ º¯°æµÈ °ÍÀ» ¸ðµç ¸®½º³Ê¿¡°Ô ÅëÁöÇÕ´Ï´Ù.
 Class <? > getColumnClass (int columnIndex)
          columnIndex¿¡ °ü°è¾øÀÌ Object.class¸¦ ¸®ÅÏÇÕ´Ï´Ù.
 String getColumnName (int column)
          ½ºÇÁ·¹µå½¬Æ®ÀÇ ±Ô¾àÀ» »ç¿ëÇØ, ¿­ÀÇ µðÆúÆ®¸í (A, B, C,...Z, AA, AB µî)À» ¸®ÅÏÇÕ´Ï´Ù.
<T extends EventListener >
T[]
getListeners (Class <T> listenerType)
          ÀÌ AbstractTableModel »ó¿¡¼­ FooListener·Î ¼­ ÇöÀç µî·ÏµÇ¾î ÀÖ´Â ¸ðµç °´Ã¼·ÎºÎÅÍ ¿Ï¼ºµÇ´Â ¹è¿­À» ¸®ÅÏÇÕ´Ï´Ù.
 TableModelListener [] getTableModelListeners ()
          ÀÌ ¸ðµ¨¿¡ µî·ÏµÈ, ¸ðµç Å×ÀÌºí ¸ðµ¨ ¸®½º³Ê·ÎºÎÅÍ ¿Ï¼ºµÇ´Â ¹è¿­À» ¸®ÅÏÇÕ´Ï´Ù.
 boolean isCellEditable (int rowIndex, int columnIndex)
          false¸¦ ¸®ÅÏÇÕ´Ï´Ù.
 void removeTableModelListener (TableModelListener  l)
          µ¥ÀÌÅÍ ¸ðµ¨ º¯°æ½ÃÀÇ ÅëÁö ´ë»ó ¸®½ºÆ®·ÎºÎÅÍ ¸®½º³Ê¸¦ »èÁ¦ÇÕ´Ï´Ù.
 void setValueAt (Object  aValue, int rowIndex, int columnIndex)
          ºñ¾îÀÖ´Â ±¸ÇöÀÌ Á¦°øµÇ¹Ç·Î µ¥ÀÌÅÍ ¸ðµ¨À» ÆíÁýÇÒ ¼ö ¾ø´Â °æ¿ì, »ç¿ëÀÚ´Â ÀÌ ¸Þ¼­µå¸¦ ±¸ÇöÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù.
 
Ŭ·¡½º java.lang. Object ·ÎºÎÅÍ »ó¼ÓµÈ ¸Þ¼­µå
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
ÀÎÅÍÆäÀ̽º javax.swing.table. TableModel ·ÎºÎÅÍ »ó¼ÓµÈ ¸Þ¼­µå
getColumnCount, getRowCount, getValueAt
 

ÇʵåÀÇ »ó¼¼

listenerList

protected EventListenerList  listenerList
¸®½º³ÊÀÇ ¸®½ºÆ®ÀÔ´Ï´Ù.

»ý¼ºÀÚ »ó¼¼

AbstractTableModel

public AbstractTableModel()
¸Þ¼­µåÀÇ »ó¼¼

getColumnName

public String  getColumnName(int column)
½ºÇÁ·¹µå½¬Æ®ÀÇ ±Ô¾àÀ» »ç¿ëÇØ, ¿­ÀÇ µðÆúÆ®¸í (A, B, C,...Z, AA, AB µî)À» ¸®ÅÏÇÕ´Ï´Ù. column°¡ ¹ß°ßµÇÁö ¾Ê´Â °æ¿ì´Â ºñ¾îÀִ ij¸¯ÅÍ ¶óÀÎÀ» ¸®ÅÏÇÕ´Ï´Ù.

Á¤ÀÇ:
ÀÎÅÍÆäÀ̽º TableModel ³»ÀÇ getColumnName
ÆĶó¹ÌÅÍ:
column - Á¶È¸µÇ´Â ¿­
¹Ýȯ°ª:
column µðÆúÆ®¸íÀÌ Æ÷ÇԵǰí Àִ ij¸¯ÅÍ ¶óÀÎ

findColumn

public int findColumn(String  columnName)
ÁöÁ¤µÈ À̸§ÀÇ ¿­À» ¸®ÅÏÇÕ´Ï´Ù. ±¸ÇöÀÌ ³×ÀÌƼºêÀ̹ǷΠÀÌ ¸Þ¼­µå¸¦ ºó¹øÇÏ°Ô È£ÃâÇÏ´Â °æ¿ì¿¡´Â ¿À¹ö¶óÀ̵å(override) ÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù. ÀÌ ¸Þ¼­µå´Â TableModelÀÎÅÍÆäÀ̽º¿¡´Â ¾ø°í, JTableÀº ÀÌ°ÍÀ» »ç¿ëÇÏÁö ¾Ê½À´Ï´Ù.

ÆĶó¹ÌÅÍ:
columnName - ¹èÄ¡µÇ´Â ¿­ÀÇ À̸§À» Æ÷ÇÔÇϴ ij¸¯ÅÍ ¶óÀÎ
¹Ýȯ°ª:
columnName¸¦ °¡Áö´Â ¿­. ¿­ÀÌ ¹ß°ßµÇÁö ¾Ê´Â °æ¿ì´Â -1

getColumnClass

public Class <? > getColumnClass(int columnIndex)
columnIndex¿¡ °ü°è¾øÀÌ Object.class¸¦ ¸®ÅÏÇÕ´Ï´Ù.

Á¤ÀÇ:
ÀÎÅÍÆäÀ̽º TableModel ³»ÀÇ getColumnClass
ÆĶó¹ÌÅÍ:
columnIndex - Á¶È¸µÇ´Â ¿­ @return Object.class
¹Ýȯ°ª:
¸ðµ¨ÀÇ »óÀ§ Ŭ·¡½º¿¡ °øÅëÀÇ °´Ã¼Ä¡

isCellEditable

public boolean isCellEditable(int rowIndex,
                              int columnIndex)
false¸¦ ¸®ÅÏÇÕ´Ï´Ù. ÀÌ°ÍÀº ¸ðµç ¼¿ÀÇ µðÆúÆ®ÀÇ ±¸ÇöÀÔ´Ï´Ù.

Á¤ÀÇ:
ÀÎÅÍÆäÀ̽º TableModel ³»ÀÇ isCellEditable
ÆĶó¹ÌÅÍ:
rowIndex - Á¶È¸µÇ´Â Çà @param columnIndex Á¶È¸µÇ´Â ¿­ @return false
columnIndex - °ªÀÌ Á¶È¸µÇ´Â ¿­
¹Ýȯ°ª:
¼¿ÀÌ ÆíÁý °¡´ÉÇÑ °æ¿ì´Â true
°ü·Ã Ç׸ñ:
TableModel.setValueAt(java.lang.Object, int, int)

setValueAt

public void setValueAt(Object  aValue,
                       int rowIndex,
                       int columnIndex)
ºñ¾îÀÖ´Â ±¸ÇöÀÌ Á¦°øµÇ¹Ç·Î µ¥ÀÌÅÍ ¸ðµ¨À» ÆíÁýÇÒ ¼ö ¾ø´Â °æ¿ì, »ç¿ëÀÚ´Â ÀÌ ¸Þ¼­µå¸¦ ±¸ÇöÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù.

Á¤ÀÇ:
ÀÎÅÍÆäÀ̽º TableModel ³»ÀÇ setValueAt
ÆĶó¹ÌÅÍ:
aValue - ¼¿¿¡ ÇÒ´çÇÏ´Â °ª @param rowIndex ¼¿ÀÇ Çà @param columnIndex ¼¿ÀÇ ¿­
rowIndex - °ªÀÌ º¯°æµÇ´Â Çà
columnIndex - °ªÀÌ º¯°æµÇ´Â ¿­
°ü·Ã Ç׸ñ:
TableModel.getValueAt(int, int), TableModel.isCellEditable(int, int)

addTableModelListener

public void addTableModelListener(TableModelListener  l)
µ¥ÀÌÅÍ ¸ðµ¨ º¯°æ½ÃÀÇ ÅëÁö ´ë»ó ¸®½ºÆ®¿¡ ¸®½º³Ê¸¦ Ãß°¡ÇÕ´Ï´Ù.

Á¤ÀÇ:
ÀÎÅÍÆäÀ̽º TableModel ³»ÀÇ addTableModelListener
ÆĶó¹ÌÅÍ:
l - TableModelListener

removeTableModelListener

public void removeTableModelListener(TableModelListener  l)
µ¥ÀÌÅÍ ¸ðµ¨ º¯°æ½ÃÀÇ ÅëÁö ´ë»ó ¸®½ºÆ®·ÎºÎÅÍ ¸®½º³Ê¸¦ »èÁ¦ÇÕ´Ï´Ù.

Á¤ÀÇ:
ÀÎÅÍÆäÀ̽º TableModel ³»ÀÇ removeTableModelListener
ÆĶó¹ÌÅÍ:
l - TableModelListener

getTableModelListeners

public TableModelListener [] getTableModelListeners()
ÀÌ ¸ðµ¨¿¡ µî·ÏµÈ, ¸ðµç Å×ÀÌºí ¸ðµ¨ ¸®½º³Ê·ÎºÎÅÍ ¿Ï¼ºµÇ´Â ¹è¿­À» ¸®ÅÏÇÕ´Ï´Ù.

¹Ýȯ°ª:
ÀÌ ¸ðµ¨ÀÇ ¸ðµç TableModelListener. Å×ÀÌºí ¸ðµ¨ ¸®½º³Ê°¡ µî·ÏµÇÁö ¾ÊÀº °æ¿ì´Â ºñ¾îÀÖ´Â ¹è¿­
µµÀÔµÈ ¹öÀü :
1.4
°ü·Ã Ç׸ñ:
addTableModelListener(javax.swing.event.TableModelListener), removeTableModelListener(javax.swing.event.TableModelListener)

fireTableDataChanged

public void fireTableDataChanged()
Å×À̺íÀÇ ÇàÀÇ ¸ðµç ¼¿°ªÀÌ º¯°æµÇ°í ÀÖÀ» °¡´É¼ºÀÌ ÀÖ´Â °ÍÀ» ¸ðµç ¸®½º³Ê¿¡°Ô ÅëÁöÇÕ´Ï´Ù. Çà¼öµµ º¯°æµÇ°í ÀÖ´Â °æ¿ì°¡ ÀÖ¾î, JTableÀº Å×À̺íÀÇ ·»´õ¸µ¸¦ óÀ½ºÎÅÍ ´Ù½Ã ÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù. ¿­ÀÇ ¼ø¼­·Î¼­ÀÇ Å×À̺íÀÇ ±¸Á¶´Â °°ÀºÀ̶ó°í º¸¿©Áý´Ï´Ù.

°ü·Ã Ç׸ñ:
TableModelEvent, EventListenerList, JTable.tableChanged(TableModelEvent)

fireTableStructureChanged

public void fireTableStructureChanged()
Å×À̺íÀÇ ±¸Á¶°¡ º¯°æµÈ °ÍÀ» ¸ðµç ¸®½º³Ê¿¡°Ô ÅëÁöÇÕ´Ï´Ù. Å×À̺íÀÇ ·Ä¼ö ¹× »õ·Î¿î ¿­ÀÇ À̸§°ú ÇüÅ°¡ ÀÌÀü »óÅÂ¿Í ´Ù¸£°í ÀÖÀ» °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. JTable°¡ ÀÌ À̺¥Æ®¸¦ ¹Þ¾Æ, autoCreateColumnsFromModel Ç÷¡±×°¡ ¼³Á¤µÇ¾î ÀÖ´Â °æ¿ì, JTableÀº ±×°Í±îÁö º¸°ü À¯ÁöÇÏ°í ÀÖ´ø Å×À̺íÀÇ ¿­À» ¸ðµÎ ÆıâÇØ, ¸ðµ¨¿¡¼­ÀÇ ¼ø¼­¿¡ µû¶ó µðÆúÆ®ÀÇ ¿­À» ´Ù½Ã ÇÒ´çÇÕ´Ï´Ù. ÀÌ°ÍÀº, JTable·Î setModel(TableModel)¸¦ È£ÃâÇÏ´Â °Í°ú °°½À´Ï´Ù.

°ü·Ã Ç׸ñ:
TableModelEvent, EventListenerList

fireTableRowsInserted

public void fireTableRowsInserted(int firstRow,
                                  int lastRow)
[firstRow, lastRow] ¹üÀ§ (¾î´À ÂÊÀÇ °ªµµ Æ÷ÇÔÇÑ´Ù)¿¡¼­ ÇàÀÌ »ðÀÔµÈ °ÍÀ» ¸ðµç ¸®½º³Ê¿¡°Ô ÅëÁöÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
firstRow - ÃÖÃÊÀÇ Çà
lastRow - ¸¶Áö¸· Çà
°ü·Ã Ç׸ñ:
TableModelEvent, EventListenerList

fireTableRowsUpdated

public void fireTableRowsUpdated(int firstRow,
                                 int lastRow)
[firstRow, lastRow] ¹üÀ§ (¾î´À ÂÊÀÇ °ªµµ Æ÷ÇÔÇÑ´Ù)¿¡¼­ ÇàÀÌ °»½ÅµÈ °ÍÀ» ¸ðµç ¸®½º³Ê¿¡°Ô ÅëÁöÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
firstRow - ÃÖÃÊÀÇ Çà
lastRow - ¸¶Áö¸· Çà
°ü·Ã Ç׸ñ:
TableModelEvent, EventListenerList

fireTableRowsDeleted

public void fireTableRowsDeleted(int firstRow,
                                 int lastRow)
[firstRow, lastRow] ¹üÀ§ (¾î´À ÂÊÀÇ °ªµµ Æ÷ÇÔÇÑ´Ù)¿¡¼­ ÇàÀÌ »èÁ¦µÈ °ÍÀ» ¸ðµç ¸®½º³Ê¿¡°Ô ÅëÁöÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
firstRow - ÃÖÃÊÀÇ Çà
lastRow - ¸¶Áö¸· Çà
°ü·Ã Ç׸ñ:
TableModelEvent, EventListenerList

fireTableCellUpdated

public void fireTableCellUpdated(int row,
                                 int column)
[row, column]¿¡ ÀÖ´Â ¼¿ÀÇ °ªÀÌ °»½ÅµÈ °ÍÀ» ¸ðµç ¸®½º³Ê¿¡°Ô ÅëÁöÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
row - °»½ÅµÈ ¼¿ÀÇ Çà
column - °»½ÅµÈ ¼¿ÀÇ ¿­
°ü·Ã Ç׸ñ:
TableModelEvent, EventListenerList

fireTableChanged

public void fireTableChanged(TableModelEvent  e)
ÀÌ Å×ÀÌºí ¸ðµ¨ÀÇ ¸®½º³Ê·Î¼­ µî·ÏµÇ¾î ¸ðµç TableModelListeners¿¡ ÁöÁ¤µÈ ÅëÁö À̺¥Æ®¸¦ Àü¼Û ÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
e - Àü¼Û µÇ´Â À̺¥Æ®
°ü·Ã Ç׸ñ:
addTableModelListener(javax.swing.event.TableModelListener), TableModelEvent, EventListenerList

getListeners

public <T extends EventListener > T[] getListeners(Class <T> listenerType)
ÀÌ AbstractTableModel »ó¿¡¼­ FooListener·Î ¼­ ÇöÀç µî·ÏµÇ¾î ÀÖ´Â ¸ðµç °´Ã¼·ÎºÎÅÍ ¿Ï¼ºµÇ´Â ¹è¿­À» ¸®ÅÏÇÕ´Ï´Ù. FooListener µî·Ï¿¡´Â addFooListener ¸Þ¼­µå°¡ »ç¿ëµË´Ï´Ù.

FooListener.class µîÀÇ Å¬·¡½º ¸®ÅÍ·²À» »ç¿ëÇØ, listenerTypeÀμö¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î ¾Æ·¡ÀÇ Äڵ带 »ç¿ëÇØ, ¸ðµ¨ m¸¦, ±× Å×ÀÌºí ¸ðµ¨ ¸®½º³Ê¿¡°Ô Á¶È¸ÇÒ ¼ö ÀÖ½À´Ï´Ù.

TableModelListener[] tmls = (TableModelListener[])(m.getListeners(TableModelListener.class));
ÀÌ·¯ÇÑ ¸®½º³Ê°¡ ¾ø´Â °æ¿ì´Â ºñ¾îÀÖ´Â ¹è¿­À» ¸®ÅÏÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
listenerType - ¿ä±¸µÇ´Â ¸®½º³ÊÀÇ ÇüÅÂ. java.util.EventListener ÇÏÀ§ ÀÎÅÍÆäÀ̽º¸¦ ÁöÁ¤
¹Ýȯ°ª:
ÀÌ ÄÄÆÛ³ÍÆ®¿¡ FooListener·Î ¼­ µî·ÏµÇ¾î ¸ðµç °´Ã¼ÀÇ ¹è¿­. ¸®½º³Ê°¡ µî·ÏµÇÁö ¾ÊÀº °æ¿ì´Â ºñ¾îÀÖ´Â ¹è¿­À» µ¹·ÁÁØ´Ù
¿¹¿Ü:
ClassCastException - listenerType°¡ java.util.EventListener¸¦ ±¸ÇöÇϴ Ŭ·¡½º ¶Ç´Â ÀÎÅÍÆäÀ̽º¸¦ ÁöÁ¤ÇÏÁö ¾Ê´Â °æ¿ì
µµÀÔµÈ ¹öÀü :
1.3
°ü·Ã Ç׸ñ:
getTableModelListeners()

JavaTM 2 Platform
Standard Ed. 5.0

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.