シナリオは次のようなものです。ユーザーがセルを編集し、Tabキーを押します。編集は中止され、値はモデル内にあります。しかし、postUpdateTestFailed()
がtrueを返す場合、選択したセルに選択範囲を戻して、ユーザーが何らかの変更を行うことができるようにしたい。問題は、動作しません。私の場合、選択されたセル以外は何も動作します。(ユーザーがTabキーを押すと、フォーカスされた/選択されたセルは常に次のセルになります。 :)TABを押した後、JTableの編集したセルに戻る方法は?
public void tableChanged(TableModelEvent tme) {
int row = tme.getFirstRow();
int col = tme.getColumn();
int type = tme.getType();
switch (type) {
case TableModelEvent.UPDATE:
currentRow = areenTable.convertRowIndexToView(row);
currentColumn = areenTable.convertColumnIndexToView(col);
if (postUpdateTestFailed()) {
// if the test fails, I want to move back to the edited cell
areenTable.changeSelection(currentRow, currentColumn, false, false);
}
break;
// the rest of switch
} // switch
} // tableChanged() method
編集1:私は
編集...誰かが前に同じ問題を経験し、何とかそれを解決することを期待していた2:私は通常、私自身の細胞 - でこれを行うだろうエディタの実装、および検証が失敗した場合のコミットを防ぎます。残念ながら、この特殊なケースでは、私は の後にの変更がコミットされた後にコールしなければなりません...そして、前に編集されたセルにカーソルを置きます。私は他のセルに移動することができますが、最後に編集したものです!私はこれをバグだと考えています。
[SSCCE](http://sscce.org/)をすぐにご利用ください。 –
Andrew、上記の質問に対して誰かがSSCCEを必要としている場合、その人は回答に気を付けるべきではありません。私の質問は無視してください。しかし、私は今それについて編集します。 – DejanLekic
*「誰かがSSCCEを必要とするならば」*誰が私はそれが必要だと言ったのですか? SSCCE *が私に問題をより深く見させることを奨励するだけです。ところで - 答えが必要ですか? –