在另一个类中调用方法来设置标签文本(不要使用netbeans的默认内容)

时间:2012-01-19 14:58:30

标签: java swing netbeans label edit

我正在使用netbeans并希望编辑标签中的文本。我想从主驱动程序类中的另一个类编辑此标签。我有大约7或8个JDialog页面,让我们说标签在其中一个页面上。

当我尝试从其中一个JDialog调用该方法以便我可以编辑它时,它一直要求java.awt.Frame。我在哪里可以找到Frame名称?或者,是否有更简单的方法来编辑另一个类的标签?

Netbeans默认将标签设为私有,所以我在网上查看并且人们说使用setter方法最简单。

QuickScreen是一个.java文件,例如......

public static void resetNumbers(){
    QuickScreen qs = new QuickScreen(some frame);
    qs.editLabel("Hello");
}

请参阅我对bmoran解决方案的最新评论。

1 个答案:

答案 0 :(得分:1)

如果更改要设置为默认或受保护级别访问权限的标签,则可以从对话框中设置它,只要两个类都在同一个包中(默认情况下)或者对话框扩展了类标签在(受保护)。

    public class FrameClass extends JFrame {
        JLabel label1;// package access
        MyDialog dialog;

        //constructor *** Netbeans may have an init() method ***
        public FrameClass(){
        label1=new JLabel("Hello!");
        ...
        }

        ...
    }

public class MyDialog{
    public void changeLabel(){
        FrameClass.label1.setText("Good Bye!");
    }
}