textfield tableNum不会将String从另一个类传递到tableLabel

时间:2016-04-05 12:46:17

标签: java swing

我试图从textfield(tableNum)获取输入并将其传递给另一个类的标签(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);

1 个答案:

答案 0 :(得分:2)

numTable作为参数传递给第二个类的构造函数。将DocumentListener添加到numTable,而不是KeyListener。在DocumentListener中,请致电setText()更新标签。

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());
    }
}