1
public class Job_GUI extends javax.swing.JFrame {

    private JobDTO jdto;

    public Job_GUI() {
        initComponents();
    }

      private void menuEditJobActionPerformed(java.awt.event.ActionEvent evt) {
            editJob.setVisible(true);
            //here I want to obtain the updated dto. 
        }

  } 


public class JobDTO extends BaseDTO {
//setters and getters

}


class ListDataUI { 

    private void initListeners() {
        summaryTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        summaryTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {

            @Override
            public void valueChanged(ListSelectionEvent e) {
                if (!e.getValueIsAdjusting()) {
                    final int selectedRowIndex = summaryTable.getSelectedRow();
                    if (selectedRowIndex != -1) {
                        BaseDTO dto = data.get(summaryTable.convertRowIndexToModel(selectedRowIndex));
                    } else {
                    }
                }
            }
        });

    }

}

BaseDTOメソッドからオブジェクトdtoを取得する方法がわからないので、オブジェクトmenuEditJobActionPerformedのすべての値を表示できます。valueChangedイベントが発生したときからこれを渡すにはどうすればよいですか? 私は単純にテーブルを使用しています。行が選択されると、dto 状態が変化し、この新しい状態をクラス Job_GUI actionperformed メソッドに渡す必要があります。

4

1 に答える 1

1

宣言dtoの直後にclass GUI {宣言します。

そうすれば、すべての関数がそれを見ることができるようにグローバルスコープになります。

クラス GUI {
   BaseDTO dto;

  private void menuEditJobActionPerformed(java.awt.event.ActionEvent evt) {
        editJob.setVisible(真);
        //「dto」にアクセスできるようになりました
    }

  }

クラスListDataUI {

    プライベートボイドinitListeners(){
        summaryTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        summaryTable.getSelectionModel().addListSelectionListener(新しいListSelectionListener() {

            @オーバーライド
            public void valueChanged(ListSelectionEvent e) {
                if (!e.getValueIsAdjusting()) {
                    final int selectedRowIndex = summaryTable.getSelectedRow();
                    if (selectedRowIndex != -1) {
                        /*BaseDTO */ dto = data.get(summaryTable.convertRowIndexToModel(selectedRowIndex));
                        // 新しいオブジェクトを宣言しない
                    } そうしないと {
                    }
                }
            }
        });

    }

}
于 2013-02-05T23:14:36.690 に答える