listmodel.java

来自「八数码拼图程序源码,可以实现初始8个数码顺序到目标8个数码顺序的自动拼图」· Java 代码 · 共 89 行

JAVA
89
字号
package com.will.eightnums;

/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2004</p>
 *
 * <p>Company: </p>
 *
 * @author Will Wang
 * @version 1.0
 */
import java.util.*;

import javax.swing.*;

class ListModel
    extends AbstractListModel {
  MainFrame frame;

  public Vector array = new Vector();

  public ListModel(MainFrame frame) {
    this.frame = frame;
  }

  private void update() {
    fireContentsChanged(this, 0, getSize());
  }

  public void addArray(Vector v) {
    if (!array.contains(v)) {
      array = v;
      update();
    }
  }

  public void removePrefix(String s) {
    array.removeElement(s);
    update();
  }

  public int getSize() {
    return array.size();
  }

  public Object getElementAt(int index) {
    if (array == null) {
      update();
    }
    return array.elementAt(index);
  }

  public int[][] getDataAt(int index) {
    Node node;
    int data[][] = {
        new int[3], new int[3], new int[3]};
    if (array == null) {
      update();
      return data;
    }
    else {
      node = (Node) array.elementAt(index);
    }
    for (int i = 0; i < 3; i++) {
      for (int j = 0; j < 3; j++) {
        data[i][j] = (int) node.nodeson[i][j];
      }
    }
    return data;
  }
}

class NumberModel
    extends SpinnerNumberModel {
  public NumberModel(int value, int minimum, int maximum, int stepSize) {
    super.setMaximum(new Integer(maximum));
    super.setMinimum(new Integer(minimum));
    super.setValue(new Integer(value));
    super.setStepSize(new Integer(stepSize));
  }

  public int getIntValue() {
    return ( (Integer)super.getValue()).intValue();
  }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?