gpt4 book ai didi

java - 两个不同 JTable 之间的 TableModelListener

转载 作者:搜寻专家 更新时间:2023-11-01 02:42:59 25 4
gpt4 key购买 nike

我目前正在使用两个 JTable。他们每个人都有自己的自定义 TableModel。

在第一个 JTable 中,我有可以选择的项目(复选框)。第二个开始是空的。当我检查第一个表中的一行时,该行的 backgroundColor 发生变化(由于 preparedRenderer 方法),我希望将检查行的内容添加到第二个 JTable 中。

我想我应该使用 TableModelListener,但我不知道如何告诉第二个表(及其模型)听第一个表。

有人想过吗?

这是我得到的代码示例:

public class MyClass {

private Model1 model1;
private Model2 model2;

private JTable table1;
private JTable table2;

public void myMethod()
{
table1 = new JTable();
model1 = new Model1();
table1.setModel(model1);

table1.getModel().addTableModelListener(new TableModelListener()
{
@Override
public void tableChanged(TableModelEvent e)
{
//Here some code to enable a button when at least one row is checked
//that works fine
}
});


table2 = new JTable();
model2 = new Model2();
table2.setModel(model2);
}
}

感谢您的帮助:)

最佳答案

可以在model1的listener中更新model2并刷新其table2:

public class MyClass  {

private Model1 model1;
private Model2 model2;

private JTable table1;
private JTable table2;

public void myMethod()
{
table1 = new JTable();
model1 = new Model1();
table1.setModel(model1);

table2 = new JTable();
model2 = new Model2();
table2.setModel(model2);

table1.getModel().addTableModelListener(new TableModelListener()
{
@Override
public void tableChanged(TableModelEvent e)
{
//Here some code to enable a button when at least one row is checked
//that works fine
Object aValue = "something"; //fill
int row = 1; //fill
int column = 1; //fill
model2.setValueAt(aValue, row, column);
model2.fireTableDataChanged();
}
});
}
}

关于java - 两个不同 JTable 之间的 TableModelListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29693129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com