我试图从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);
答案 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());
}
}