list.java
来自「纯java操作系统jnode,安装简单和操作简单的个人使用的Java操作系统」· Java 代码 · 共 912 行 · 第 1/2 页
JAVA
912 行
*
* @deprecated Use add() instead.
*/
public void addItem(String item, int index) {
add(item, index);
}
/*************************************************************************/
/**
* Deletes the item at the specified index.
*
* @param index The index of the item to delete.
*
* @exception IllegalArgumentException If the index is not valid
*/
public void delItem(int index) throws IllegalArgumentException {
remove(index);
}
/*************************************************************************/
/**
* Deletes the item at the specified index.
*
* @param index The index of the item to delete.
*
* @exception IllegalArgumentException If the index is not valid
*/
public void remove(int index) throws IllegalArgumentException {
items.removeElementAt(index);
if (peer != null) {
ListPeer l = (ListPeer) peer;
l.delItems(index, index);
}
}
/*************************************************************************/
/**
* Deletes all items in the specified index range.
*
* @param start The beginning index of the range to delete.
* @param end The ending index of the range to delete.
*
* @exception IllegalArgumentException If the indexes are not valid
*
* @deprecated This method is deprecated for some unknown reason.
*/
public synchronized void delItems(int start, int end) throws IllegalArgumentException {
if ((start < 0) || (start >= items.size()))
throw new IllegalArgumentException("Bad list start index value: " + start);
if ((start < 0) || (start >= items.size()))
throw new IllegalArgumentException("Bad list start index value: " + start);
if (start > end)
throw new IllegalArgumentException("Start is greater than end!");
// We must run the loop in reverse direction.
for (int i = end; i >= start; --i)
items.removeElementAt(i);
if (peer != null) {
ListPeer l = (ListPeer) peer;
l.delItems(start, end);
}
}
/*************************************************************************/
/**
* Deletes the first occurrence of the specified item from the list.
*
* @param item The item to delete.
*
* @exception IllegalArgumentException If the specified item does not exist.
*/
public synchronized void remove(String item) throws IllegalArgumentException {
int index = items.indexOf(item);
if (index == -1)
throw new IllegalArgumentException("List element to delete not found");
remove(index);
}
/*************************************************************************/
/**
* Deletes all of the items from the list.
*/
public synchronized void removeAll() {
items.clear();
if (peer != null) {
ListPeer l = (ListPeer) peer;
l.removeAll();
}
}
/*************************************************************************/
/**
* Deletes all of the items from the list.
*
* @deprecated This method is deprecated in favor of <code>removeAll()</code>.
*/
public void clear() {
removeAll();
}
/*************************************************************************/
/**
* Replaces the item at the specified index with the specified item.
*
* @param item The new item value.
* @param index The index of the item to replace.
*
* @exception IllegalArgumentException If the index is not valid.
*/
public synchronized void replaceItem(String item, int index) throws IllegalArgumentException {
remove(index);
addItem(item, index);
}
/*************************************************************************/
/**
* Returns the index of the currently selected item. -1 will be returned
* if there are no selected rows or if there are multiple selected rows.
*
* @return The index of the selected row.
*/
public synchronized int getSelectedIndex() {
if (peer != null) {
ListPeer l = (ListPeer) peer;
selected = l.getSelectedIndexes();
}
if (selected == null || selected.length > 1)
return -1;
return selected[0];
}
/*************************************************************************/
/**
* Returns an array containing the indexes of the rows that are
* currently selected.
*
* @return A list of indexes of selected rows.
*/
public synchronized int[] getSelectedIndexes() {
if (peer != null) {
ListPeer l = (ListPeer) peer;
selected = l.getSelectedIndexes();
}
return selected;
}
/*************************************************************************/
/**
* Returns the item that is currently selected, or <code>null</code> if there
* is no item selected. FIXME: What happens if multiple items selected?
*
* @return The selected item, or <code>null</code> if there is no
* selected item.
*/
public synchronized String getSelectedItem() {
int index = getSelectedIndex();
if (index == -1)
return (null);
return ((String) items.elementAt(index));
}
/*************************************************************************/
/**
* Returns the list of items that are currently selected in this list.
*
* @return The list of currently selected items.
*/
public synchronized String[] getSelectedItems() {
int[] indexes = getSelectedIndexes();
if (indexes == null)
return (new String[0]);
String[] retvals = new String[indexes.length];
if (retvals.length > 0)
for (int i = 0; i < retvals.length; i++)
retvals[i] = (String) items.elementAt(indexes[i]);
return (retvals);
}
/*************************************************************************/
/**
* Returns the list of items that are currently selected in this list as
* an array of type <code>Object[]</code> instead of <code>String[]</code>.
*
* @return The list of currently selected items.
*/
public synchronized Object[] getSelectedObjects() {
int[] indexes = getSelectedIndexes();
if (indexes == null)
return (new Object[0]);
Object[] retvals = new Object[indexes.length];
if (retvals.length > 0)
for (int i = 0; i < retvals.length; i++)
retvals[i] = items.elementAt(indexes[i]);
return (retvals);
}
/*************************************************************************/
/**
* Tests whether or not the specified index is selected.
*
* @param index The index to test.
*
* @return <code>true</code> if the index is selected, <code>false</code>
* otherwise.
*/
public boolean isIndexSelected(int index) {
int[] indexes = getSelectedIndexes();
for (int i = 0; i < indexes.length; i++)
if (indexes[i] == index)
return (true);
return (false);
}
/*************************************************************************/
/**
* Tests whether or not the specified index is selected.
*
* @param index The index to test.
*
* @return <code>true</code> if the index is selected, <code>false</code>
* otherwise.
*
* @deprecated This method is deprecated in favor of
* <code>isIndexSelected(int)</code>.
*/
public boolean isSelected(int index) {
return (isIndexSelected(index));
}
/*************************************************************************/
/**
* This method ensures that the item at the specified index is visible.
*
* @exception IllegalArgumentException If the specified index is out of
* range.
*/
public synchronized void makeVisible(int index) throws IllegalArgumentException {
if ((index < 0) || (index >= items.size()))
throw new IllegalArgumentException("Bad list index: " + index);
visibleIndex = index;
if (peer != null) {
ListPeer l = (ListPeer) peer;
l.makeVisible(index);
}
}
/*************************************************************************/
/**
* Returns the index of the last item that was made visible via the
* <code>makeVisible()</code> method.
*
* @return The index of the last item made visible via the
* <code>makeVisible()</code> method.
*/
public int getVisibleIndex() {
return (visibleIndex);
}
/*************************************************************************/
/**
* Makes the item at the specified index selected.
*
* @param index The index of the item to select.
*/
public synchronized void select(int index) {
ListPeer lp = (ListPeer) getPeer();
if (lp != null)
lp.select(index);
}
/*************************************************************************/
/**
* Makes the item at the specified index not selected.
*
* @param index The index of the item to unselect.
*/
public synchronized void deselect(int index) {
ListPeer lp = (ListPeer) getPeer();
if (lp != null)
lp.deselect(index);
}
/*************************************************************************/
/**
* Notifies this object to create its native peer.
*/
public void addNotify() {
if (peer == null)
peer = getToolkit().createList(this);
super.addNotify();
}
/*************************************************************************/
/**
* Notifies this object to destroy its native peer.
*/
public void removeNotify() {
super.removeNotify();
}
/*************************************************************************/
/**
* Adds the specified <code>ActionListener</code> to the list of
* registered listeners for this object.
*
* @param listener The listener to add.
*/
public synchronized void addActionListener(ActionListener listener) {
action_listeners = AWTEventMulticaster.add(action_listeners, listener);
}
/*************************************************************************/
/**
* Removes the specified <code>ActionListener</code> from the list of
* registers listeners for this object.
*
* @param listener The listener to remove.
*/
public synchronized void removeActionListener(ActionListener listener) {
action_listeners = AWTEventMulticaster.remove(action_listeners, listener);
}
/*************************************************************************/
/**
* Adds the specified <code>ItemListener</code> to the list of
* registered listeners for this object.
*
* @param listener The listener to add.
*/
public synchronized void addItemListener(ItemListener listener) {
item_listeners = AWTEventMulticaster.add(item_listeners, listener);
}
/*************************************************************************/
/**
* Removes the specified <code>ItemListener</code> from the list of
* registers listeners for this object.
*
* @param listener The listener to remove.
*/
public synchronized void removeItemListener(ItemListener listener) {
item_listeners = AWTEventMulticaster.remove(item_listeners, listener);
}
/*************************************************************************/
/**
* Processes the specified event for this object. If the event is an
* instance of <code>ActionEvent</code> then the
* <code>processActionEvent()</code> method is called. Similarly, if the
* even is an instance of <code>ItemEvent</code> then the
* <code>processItemEvent()</code> method is called. Otherwise the
* superclass method is called to process this event.
*
* @param event The event to process.
*/
protected void processEvent(AWTEvent event) {
if (event instanceof ActionEvent)
processActionEvent((ActionEvent) event);
else if (event instanceof ItemEvent)
processItemEvent((ItemEvent) event);
else
super.processEvent(event);
}
/*************************************************************************/
/**
* This method processes the specified event by dispatching it to any
* registered listeners. Note that this method will only get called if
* action events are enabled. This will happen automatically if any
* listeners are added, or it can be done "manually" by calling
* the <code>enableEvents()</code> method.
*
* @param event The event to process.
*/
protected void processActionEvent(ActionEvent event) {
if (action_listeners != null)
action_listeners.actionPerformed(event);
}
/*************************************************************************/
/**
* This method processes the specified event by dispatching it to any
* registered listeners. Note that this method will only get called if
* item events are enabled. This will happen automatically if any
* listeners are added, or it can be done "manually" by calling
* the <code>enableEvents()</code> method.
*
* @param event The event to process.
*/
protected void processItemEvent(ItemEvent event) {
if (item_listeners != null)
item_listeners.itemStateChanged(event);
}
void dispatchEventImpl(AWTEvent e) {
if (e.id <= ItemEvent.ITEM_LAST && e.id >= ItemEvent.ITEM_FIRST && (item_listeners != null || (eventMask & AWTEvent.ITEM_EVENT_MASK) != 0))
processEvent(e);
else if (
e.id <= ActionEvent.ACTION_LAST && e.id >= ActionEvent.ACTION_FIRST && (action_listeners != null || (eventMask & AWTEvent.ACTION_EVENT_MASK) != 0))
processEvent(e);
else
super.dispatchEventImpl(e);
}
/*************************************************************************/
/**
* Returns a debugging string for this object.
*
* @return A debugging string for this object.
*/
protected String paramString() {
return "multiple=" + multipleMode + ",rows=" + rows + super.paramString();
}
} // class List
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?