动态更新实时事件的文本字段

时间:2018-06-21 10:56:09

标签: java javafx javafx-2

我目前正在用javafx开发软件电话。而且我有点难以捕获到文本字段的传入呼叫。我的代码示例在这里。 使用Joptionpane成功的bt来电,我想让值像电话一样出现在呼叫文本字段中。 谢谢。

public void telephoneNumbs(String numbers) {
    String replace = numbers.replace("sip:", "").trim().replace(".", ""); // Incoming Call Numbers from Sip UA
    if (!replace.isEmpty()) {
       List<TelephoneObj> telephons; 
        telTextField.setText(null); //init it with null
         costumDao = new CostumersDao(); // costumers DB 
         telephons = costumDao.getOrCompareTelfone(numbers);
           for (TelephoneObj tmp : telephons) {
               System.out.println("Test: " + tmp.getTelephoneNums); // am getting exactle what i need here from my Database
               //or 
               JOptionPane.showMessageDialog(null,"incoming:"+ tmp.getTelephoneNums); // it show it during incoming calls

               //here is the problem. it wouldnt show the Value on the Textfield
                telTextField.setText(tmp.getTelephoneNums); //try to push that Value(Telephone number) to show in JFXTextfield/it cold be any other Textfields

           }


    }

1 个答案:

答案 0 :(得分:0)

今天非常高兴,经过两天的思考,如何解决这种不花时间思考的痛苦生活,一切顺利。 我终于通过使用Task解决了问题。

Task<Void> task = new Task<Void>() {
        {
            updateMessage("");
        }

        @Override
        public Void call() throws Exception {

            while (true) {
                updateMessage(callee);
                try {
                    Thread.sleep(100);
                } catch (InterruptedException ex) {
                    break;
                }
            }
            return null;
        }

    };

    //neuLabel.textProperty().bind(task.messageProperty());
    kdAddrTel.textProperty().bind(task.messageProperty());
    Thread th = new Thread(task);
    th.setDaemon(true);

    th.start();