2016-04-05 1 views
1

テキストフィールド(tableNum)から入力を取得し、別のクラスのラベル(tableLabel)に渡そうとしています。テキストフィールドからラベルに値を正確に渡す方法がわかりません。 ご協力いただければ幸いです。第二のクラスからファーストクラスtextfield tableNumはStringを別のクラスのtableLabelに渡しません

num_Table = new JTextField(); 

num_Table.addKeyListener(new KeyAdapter() { 
    @Override 
     public void keyTyped(KeyEvent e) {         
      char c=e.getKeyChar(); 
      if(!(Character.isDigit(c) ||  (c==KeyEvent.VK_BACK_SPACE)||c==KeyEvent.VK_DELETE)){ 
      e.consume();                   
      } 
     } 
}); 
num_Table.setBounds(334, 161, 83, 26); 
contentPane.add(num_Table); 
num_Table.setColumns(10); 

num_TableSub_Btn = new JButton("Submit"); 
num_TableSub_Btn.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 
     num_Table.setText(""); 
    } 
}); 
num_TableSub_Btn.setBounds(487, 161, 83, 29); 
contentPane.add(num_TableSub_Btn); 

//抽出から

//抽出

tableLabel = new JLabel("New label"); 
tableLabel.setBounds(16, 6, 61, 16); 
contentPane.add(tableLabel); 

答えて

2

あなたの第二のクラスのコンストラクタにパラメータとして渡すnumTableDocumentListenernumTableに追加し、KeyListenerに追加しないでください。 DocumentListenersetText()と電話をかけてラベルを更新してください。

numTable.addDocumentListener(new MyDocumentListener()); 
… 
class MyDocumentListener implements DocumentListener { 

    public void insertUpdate() { 
     update(); 
    } 
    public void removeUpdate() { 
     update(); 
    } 
    public void changedUpdate(DocumentEvent e) {} 

    public void update() { 
     tableLabel.setText(numTable.getText()); 
    } 
} 
関連する問題