java swing从不同的线程中获取JTextField的值

时间:2015-09-30 15:26:03

标签: java multithreading swing

我知道如果我需要从其他线程更改JTextField值,我需要使用SwingUtilities.invokeLater()调用。但是如果我需要从不同的线程获取该值,我可以使用textfield.getText()或者我需要使用某种invokeLater调用吗?感谢。

2 个答案:

答案 0 :(得分:1)

如果getText()调用的结果可能是不确定的(即无序),那么允许使用不同的线程来获取值。

答案 1 :(得分:1)

应该从事件派发线程中调用像getText()这样简单的东西。

如果您在另一个主题中,则可以使用invokeAndWait

var userA = 10;
var userB = 10;
var users = [userA, userB];

function user(defence, attack){
  for (var i = 0; i < users.length; i++) {
  if (users[i] == userA) {
    if (defence == attack) {
      return 0;
 } }

  //Attack is undefended and hurts the defender
  if (attack == "head") {
    return users[i] -= 4;
  } else if (attack == "leg") {
    return users[i] -= 2;
  }

else if (users[i] == userB) {
  if (defence == attack) {
    return 0;
 } }

  //Attack is undefended and hurts the defender
  if (attack == "head") {
    return users[i] -= 4;
  } else if (attack == "leg") {
    return users[i] -= 2;
  }



}

}

users[i] += user("head", "leg");