java怎么设置文本框中的显示内容随JTable内的数据改变而改变?

PS:求有详细的过程或例子,多问一句、netbean中可视化界面的文本框的绑定是干什么用的?... PS:求有详细的过程或例子,多问一句、netbean中可视化界面的文本框的绑定是干什么用的? 展开
 我来答
婉顺还柔润的画眉鸟h
2015-01-30 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:57
采纳率:0%
帮助的人:63.5万
展开全部
自己实现abstracttablemodel,设置其中的setValat,然后对具体的值进行判断对应的那一个jtextfield,
如果判断是需要更改内容的行列的值对应的jtextfield,那么就在设置值的同时更改jtextfield的值
final class userTableModel extends AbstractTableModel
{
/**
*
*/
private static final long serialVersionUID = 1L;
protected List <Object> contents;
protected ArrayList<Integer> rowIndex = new ArrayList<Integer>();
protected List <String> columnNames;
private int curF = -1;
private String curS = "";
private int checkNum = -1;

public userTableModel() {
this.columnNames = new Vector <String>();
this.contents = new Vector <Object>();
}

public userTableModel(String[] columnNames) {
this();

if (null == columnNames)
{
return;
}

for (String columnName : columnNames) {
this.columnNames.add(columnName);
}
}

public userTableModel(Object[][] data,String[] columnNames) throws Exception{
this(columnNames);
addContents(data);
}

public void setCheckNum(int n){
this.checkNum = n;
}

public void addContents(Object[][] datas) throws Exception {
this.contents.clear();

if (null == datas) {
return;
}

for (Object[] data : datas) {
addRow(data);
}
}
@Override
public Class<?> getColumnClass(int columnIndex) {
// TODO Auto-generated method stub
if (contents.size() == 0) return super.getClass();
Object value = getValueAt(0, columnIndex);

if (value != null) {
return value.getClass();
}

return super.getClass();
}

@Override
public int getColumnCount() {
// TODO Auto-generated method stub

return columnNames.size();

}

@Override
public String getColumnName(int columnIndex) {
// TODO Auto-generated method stub

return columnNames.get(columnIndex);
}

@Override
public int getRowCount() {
// TODO Auto-generated method stub
return this.contents.size();
}

@Override
public Object getValueAt(int rowIndex, int columnIndex) {
// TODO Auto-generated method stub
return ((Vector) contents.get(rowIndex)).get(columnIndex);
}

@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
// TODO Auto-generated method stub
return super.isCellEditable(rowIndex, columnIndex);
}

@Override
public void setValueAt(Object value, int rowIndex, int columnIndex) {
// TODO Auto-generated method stub
((Vector) contents.get(rowIndex)).set(columnIndex, value);
fireTableCellUpdated(rowIndex, columnIndex);
}

public void addRow(Object[] rowData){
if (null == rowData) {
return;
}

if (this.columnNames.size() != rowData.length) {
try {
throw new Exception("Error Lenght of DATA");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

Vector <Object> content = new Vector <Object>(this.columnNames.size());

for (int i = 0; i < this.columnNames.size(); i++) {

content.add(rowData[i]);
}
contents.add(content);
fireTableRowsInserted(0, contents.size() - 1);
}

public void removeRows(int row, int count) {
for (int i = 0; i < count; i++) {
if (contents.size() >=row) {
contents.remove(row);
fireTableRowsDeleted(row, row);
}
}
}

public void clear(){
removeRows(0,contents.size());
}

public void removeRow(int row){
contents.remove(row);
fireTableRowsDeleted(row, row);
}

public void insertRow(int row,String[] rowData){
fireTableRowsInserted(0, contents.size() - 1);
}

public void setColumnIdentifiers(String[] columnIdentifiers){
this.columnNames.clear();
for (int i = 0 ; i < columnIdentifiers.length;i++){
if (columnIdentifiers[i] == null)
this.columnNames.add("");
else
this.columnNames.add(columnIdentifiers[i]);
}
}

/*
* clearFlag - from which row to find it,if true,then from 0 else from the last time find result row
* sameFind - the same or is the sub,true - to find the same
* caseS - case sensertive
*/
public int findValueAt(String val,String colN,boolean clearFlag,boolean sameFind,boolean caseS){
if (!val.equals(this.curS) || clearFlag) this.curF = -1;
this.curS = val;
int n,m;
if (this.curF == -1) m = 0;
else
m = this.curF + 1;
if (colN != null)
{
if ((n = this.findColumn(colN)) == -1) return -1;
for (int i = m;i < contents.size();i++){
if (sameFind && caseS){
if (((Vector)contents.get(i)).get(n).toString().equals(val))
{
this.curF = i;
return i;
}
}else if (sameFind)
{
if (((Vector)contents.get(i)).get(n).toString().toUpperCase().equals(val.toUpperCase()))
{
this.curF = i;
return i;
}
}else if (((Vector)contents.get(i)).get(n).toString().toUpperCase().indexOf(val.toUpperCase()) >-1)
{
this.curF = i;
return i;
}
}
this.curF = -1;
}else
{//looking from all the contents
for (n = 0;n < getColumnCount();n++){
if (n != this.checkNum)
for (int i = m;i < contents.size();i++){
if (sameFind && caseS){
if (((Vector)contents.get(i)).get(n).toString().equals(val))
{
this.curF = i;
return i;
}
}else if (sameFind)
{
if (((Vector)contents.get(i)).get(n).toString().toUpperCase().equals(val.toUpperCase()))
{
this.curF = i;
return i;
}
}else if (((Vector)contents.get(i)).get(n).toString().toUpperCase().indexOf(val.toUpperCase()) >-1)
{
this.curF = i;
return i;
}
}
}
this.curF = -1;
}
return -1;
}

public int findValueAt(String val,int colN,boolean clearFlag,boolean sameFind,boolean caseS){
if (!val.equals(this.curS) || clearFlag) this.curF = -1;
this.curS = val;
int n,m;
if (this.curF == -1) m = 0;
else
m = this.curF + 1;
if (colN > -1)
{
if ((colN == this.checkNum) || colN > this.getColumnCount()) return -1;
for (int i = m;i < contents.size();i++){
if (sameFind && caseS){
if (((Vector)contents.get(i)).get(colN).toString().equals(val))
{
this.curF = i;
return i;
}
}else if (sameFind)
{
if (((Vector)contents.get(i)).get(colN).toString().toUpperCase().equals(val.toUpperCase()))
{
this.curF = i;
return i;
}
}else if (((Vector)contents.get(i)).get(colN).toString().toUpperCase().indexOf(val.toUpperCase()) >-1)
{
this.curF = i;
return i;
}
}
this.curF = -1;
}else
{
for (n = 0;n < getColumnCount();n++){
if (n != this.checkNum)
for (int i = m;i < contents.size();i++){
if (sameFind && caseS){
if (((Vector)contents.get(i)).get(n).toString().equals(val))
{
this.curF = i;
return i;
}
}else if (sameFind)
{
if (((Vector)contents.get(i)).get(n).toString().toUpperCase().equals(val.toUpperCase()))
{
this.curF = i;
return i;
}
}else if (((Vector)contents.get(i)).get(n).toString().toUpperCase().indexOf(val.toUpperCase()) >-1)
{
this.curF = i;
return i;
}
}
}
this.curF = -1;
}
return -1;
}

public int findColumn(String columnName){
for (int i = 0; i < columnNames.size();i++){
if (columnNames.get(i).equals(columnName)){
return i;
}
}
return -1;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式