在运行时使用Java控件/属性?

时间:2009-11-26 20:43:08

标签: java netbeans controls

我似乎无法在运行时使用此语句。

textWords.setText(item);

textWords是一个对象,setText是一个方法,item是一个整数。

有谁熟悉这个?我似乎无法在运行时将其工作。

没有错误,在运行期间它什么也没做!

public class frmMain extends javax.swing.JFrame {
  public frmMain() {
    initComponents();
    textWords.append("Bryan"); // THIS works!! but this only                                       //happens when the form is initialized, not very usefull
}
 //Other pre generated code here.

private void displayItem() {
    //Method I created to help me catch data 
    // and make a call to this form.
    // none of these are working.
    txtTest.setText(item);

    textWords.setText(item);
    textWords.insert("Bryan",1);
    textWords.append("number");
}

2 个答案:

答案 0 :(得分:0)

我猜你需要的是:

textWords.setText(Integer.toString(item));

即。你需要将'item'(整数)转换为String。你可以这样做:

textWords.setText("" + item);

答案 1 :(得分:0)

您确定要在EDT上进行更改吗?在任何其他线程上更改GUI组件可能会产生未定义的结果。

尝试在displayItem()的开头添加此代码:

 if (!SwingUtilities.isEventDispatchThread()) {
     SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            displayItem();
        }
    });
    return;
 }

如果对EDT上的displayItem的调用没有,它会创建一个runnable并在EDT上重新调整它。

另见http://java.sun.com/docs/books/tutorial/uiswing/concurrency/index.html