テーブル コンボ ボックス内の ItemEvent の CellRow を取得する
コンボ ボックスを含む列を含む JTable を操作する場合、次のことが必要になる場合があります。 ItemEvent をトリガーした ComboBox の行を取得します。ただし、ItemListener にはそのためのメソッドがありません。
CellRow を決定する方法
目的の行を取得するには、次のオプションを考慮してください。
TableCellEditor の使用
「コンボ ボックスをエディタとして使用する」では、TableCellEditor の getTableCellEditorComponent() メソッドにパラメータとして行が含まれます。このメソッドは行にアクセスするために使用できます。
依存列の同期
getValueAt() メソッドの利用
Byモデルの getValueAt() メソッドをオーバーライドすると、ComboBox 列と他の列との間の関係を確立できます。同じ行内の列。変更されたコード:
import java.awt.*; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.io.IOException; import javax.swing.*; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableColumn; public class DependentColumn extends JFrame { private static final int DEPENDENT_COL = 1; private static final int ITEM_COL = 2; private static final String[] columnNames = {"Col 1", "Col 2", "Col 3"}; public static void main(String args[]) throws IOException { EventQueue.invokeLater(new Runnable() { @Override public void run() { DependentColumn dc = new DependentColumn(); } }); } public DependentColumn() {
以上がItemEvent をトリガーするテーブル ComboBox の行インデックスを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。