Java 为jTable的每一行指定一个隐藏值
如何为jTable的每一行分配id?Java 为jTable的每一行指定一个隐藏值,java,jtable,hidden,Java,Jtable,Hidden,如何为jTable的每一行分配id? 我不希望用户能够看到它。一个快速的黑客程序就是要。更好的方法可能是编写一个自定义表模型,该模型甚至不向JTable公开所述数据,但更复杂的是:-) 快乐的编码。一个快速的破解方法就是。更好的方法可能是编写一个自定义表模型,该模型甚至不向JTable公开所述数据,但更复杂的是:-) 愉快的编码。rowData只是一个对象数组,因此在表示行模型的类中,有一个id的成员变量,它不会包含在toString()中。rowData只是一个对象数组,所以在表示行模型的类中
我不希望用户能够看到它。一个快速的黑客程序就是要。更好的方法可能是编写一个自定义表模型,该模型甚至不向JTable公开所述数据,但更复杂的是:-) 快乐的编码。一个快速的破解方法就是。更好的方法可能是编写一个自定义表模型,该模型甚至不向JTable公开所述数据,但更复杂的是:-)
愉快的编码。rowData只是一个对象数组,因此在表示行模型的类中,有一个id的成员变量,它不会包含在toString()中。rowData只是一个对象数组,所以在表示行模型的类中,有一个id的成员变量,它不会包含在toString()中.您应该通过创建一个实现TableModel的类来实现自己的表模型,或者更容易地创建一个扩展AbstractTableModel的类 如果这样做,您只需要实现
class MyModel extends AbstractTableModel {
public Object getValueAt(int rowIndex, int columnIndex) {
// return what value is appropriate
return null;
}
public int getColumnCount() {
// return however many columns you want
return 1;
}
public int getRowCount() {
// return however many rows you want
return 1;
}
}
通常,您会在所选对象的类中创建一个列表,而getRowCount就是列表的大小
getValueAt将从列表中的对象返回值
例如,如果我想要一个具有隐藏id的用户表,那么
class UserModel extends AbstractTableModel {
private List<User> users = new ArrayList<User>();
public Object getValueAt(int rowIndex, int columnIndex) {
User user = users.get(rowIndex);
if (columnIndex == 0)
return user.getName();
else
return user.getAge(); //whatever
}
public int getColumnCount() {
return 2;
}
public int getRowCount() {
return users.size();
}
}
class User {
private int userId; // hidden from the table
private String name;
private int age;
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
class UserModel扩展了AbstractTableModel{
private List users=new ArrayList();
公共对象getValueAt(int行索引、int列索引){
User=users.get(rowIndex);
如果(columnIndex==0)
返回user.getName();
其他的
返回user.getAge();//随便什么
}
public int getColumnCount(){
返回2;
}
public int getRowCount(){
返回users.size();
}
}
类用户{
private int userId;//从表中隐藏
私有字符串名称;
私人互联网;
公共字符串getName(){
返回名称;
}
公共整数getAge(){
回归年龄;
}
}
您应该通过创建一个实现TableModel的类来实现自己的表模型,或者更容易地创建一个扩展AbstractTableModel的类
如果这样做,您只需要实现
class MyModel extends AbstractTableModel {
public Object getValueAt(int rowIndex, int columnIndex) {
// return what value is appropriate
return null;
}
public int getColumnCount() {
// return however many columns you want
return 1;
}
public int getRowCount() {
// return however many rows you want
return 1;
}
}
通常,您会在所选对象的类中创建一个列表,而getRowCount就是列表的大小
getValueAt将从列表中的对象返回值
例如,如果我想要一个具有隐藏id的用户表,那么
class UserModel extends AbstractTableModel {
private List<User> users = new ArrayList<User>();
public Object getValueAt(int rowIndex, int columnIndex) {
User user = users.get(rowIndex);
if (columnIndex == 0)
return user.getName();
else
return user.getAge(); //whatever
}
public int getColumnCount() {
return 2;
}
public int getRowCount() {
return users.size();
}
}
class User {
private int userId; // hidden from the table
private String name;
private int age;
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
class UserModel扩展了AbstractTableModel{
private List users=new ArrayList();
公共对象getValueAt(int行索引、int列索引){
User=users.get(rowIndex);
如果(columnIndex==0)
返回user.getName();
其他的
返回user.getAge();//随便什么
}
public int getColumnCount(){
返回2;
}
public int getRowCount(){
返回users.size();
}
}
类用户{
private int userId;//从表中隐藏
私有字符串名称;
私人互联网;
公共字符串getName(){
返回名称;
}
公共整数getAge(){
回归年龄;
}
}