本类用于查看全部会员 author rhh package pages;import javaawtBorderLayout;import javasqlConnection;import javasqlResultSet;import javasqlStatement;import javautilArrayList;import javaxswingJPanel;import javax
该代码报错是因为在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
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();
}
}
原文地址: https://www.cveoy.top/t/topic/fJbn 著作权归作者所有。请勿转载和采集!