该代码报错是因为在JPViewMembers类中调用了MainSystem类中的成员变量,但是MainSystem类中并没有定义这些变量。因此需要在MainSystem类中添加以下成员变量:

public static ModelViewMembers modelViewMembers; public static JTable memberTable;

修改后的代码如下:

/**

  • 本类用于查看全部会员
  • @author rhh */

package pages;

import java.awt.BorderLayout; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList;

import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.AbstractTableModel;

import MainSystem.MainSystem;

public class JPViewMembers extends JPanel {

/** * */ private static final long serialVersionUID = 1L;

public JPViewMembers() { MainSystem.modelViewMembers = new ModelViewMembers(); MainSystem.memberTable = new JTable(MainSystem.modelViewMembers); MainSystem.memberTable.setRowHeight(20); MainSystem.memberTable.getColumnModel().getColumn(0).setPreferredWidth(20); MainSystem.memberTable.setCellSelectionEnabled(true);

JScrollPane jspTable = new JScrollPane(MainSystem.memberTable);

setLayout(new BorderLayout());
add(jspTable);
add(new JPanel(), BorderLayout.WEST);
add(new JPanel(), BorderLayout.NORTH);
add(new JPanel(), BorderLayout.EAST);
add(new JPanel(), BorderLayout.SOUTH);

}

public class ModelViewMembers extends AbstractTableModel { /** * */ private static final long serialVersionUID = 1L; private ArrayList<ArrayList> array; private String[] name = {"序号", "会员ID", "建立日期"};

public ModelViewMembers() {
  array = new ArrayList<ArrayList<String>>(10);

  try {
    Connection connect = MainSystem.connectToData();

    Statement stmt = connect.createStatement();
    ResultSet rs = stmt.executeQuery("select * from LogIn_Members order by build_date");

    while (rs.next()) {
      ArrayList<String> tempArrayList = new ArrayList<String>(3);

      tempArrayList.add(String.valueOf(new Integer(array.size()) + 1));
      tempArrayList.add(rs.getString("id"));
      tempArrayList.add(rs.getString("build_date"));

      array.add(tempArrayList);
    }

    connect.close();

  } catch (Exception ex) {
    System.out.print("查看会员时获取信息失败");
    ex.printStackTrace();
  }

}

public void addRow(String id) {

  try {
    Connection connect = MainSystem.connectToData();

    Statement stmt = connect.createStatement();
    ResultSet rs = stmt.executeQuery("select * from LogIn_Members");

    while (rs.next()) {
      if (rs.getString("id").equals(id)) break;
    }

    ArrayList<String> tempArrayList = new ArrayList<String>(3);

    tempArrayList.add(String.valueOf(new Integer(array.size()) + 1));
    tempArrayList.add(rs.getString("id"));
    tempArrayList.add(rs.getString("build_date"));

    connect.close();

    array.add(tempArrayList);

  } catch (Exception ex) {
    System.out.print("查看会员表格中新增数据时获取数据失败");
    ex.printStackTrace();
  }

}

public boolean isCellEditable(int rowIndex, int columnIndex) {
  return false;
}

public void removeRow(int row) {
  if (array.size() > row) array.remove(row);
}

public int findRow(String id) {

  int count = -1;

  for (int i = 0; i < array.size(); i++) {
    if (((ArrayList<String>) array.get(i)).get(1).equals(id)) {
      count = i;
      break;
    }
  }

  return count;
}

public void setValueAt(Object value, int row, int col) {
  ((ArrayList<String>) array.get(row)).remove(col);
  ((ArrayList<String>) array.get(row)).add(col, (String) value);
  this.fireTableCellUpdated(row, col);
}

@Override
public int getRowCount() {
  return array.size();
}

@Override
public int getColumnCount() {
  return name.length;
}

@Override
public String getColumnName(int col) {
  return name[col];
}

@Override
public Object getValueAt(int rowIndex, int columnIndex) {
  return ((ArrayList<String>) array.get(rowIndex)).get(columnIndex);
}

@SuppressWarnings({"unchecked", "rawtypes"})
public Class getColumnClass(int col) {
  return getValueAt(0, col).getClass();
}

}

本类用于查看全部会员 author rhh package pages;import javaawtBorderLayout;import javasqlConnection;import javasqlResultSet;import javasqlStatement;import javautilArrayList;import javaxswingJPanel;import javax

原文地址: https://www.cveoy.top/t/topic/fJbn 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录