2

NetBeansを使用して簡単なGUIを作成し始めましたが、現在、いくつかの問題に直面しています。

私はこれを持っています:

package my.sccsymapp;

public class sccsymapp extends javax.swing.JFrame {
    /*SOME CODE*/                                     
    public static void main(String args[]) {
        /*SOME CODE*/
    }
    // Variables declaration - do not modify
    private javax.swing.JTextField tempmedespCost;
    // End of variables declaration
}

これを実行すると、期待どおりに機能します。test私のJTextFieldに配置されます。

しかし、私がやりたいのはtempmedespCost.setText("test");、他のクラスのコードで使用することです。

私はこのクラスを持っています:

package my.sccsymapp;

import java.util.*;

public class Servico extends sccsymapp{
    /*SOME CODE*/ 
    public void relat (){
    /*SOME CODE*/ 
    tempmedespCost.setText("test");
    }
    /*SOME CODE*/ 
}

それは今言う:

tempmedespCost has private access in my.sccsymapp.sccsymapp

だから私はtempmedespCost公開に変更しました。

これでエラーは表示されず、エラーなしで実行testされますが、JTextFieldには配置されません。

私をある方向に向けてもらえますか?

4

1 に答える 1

5

tempmedespCostあなたのクラスでプライベートとして定義されています

privateメンバーは、クラスのメンバーである関数によってのみアクセスできます。クラスの子 ( など Servico) は、プライベート フィールドにアクセスできません。

の可視性tempmedespCostを保護に変更するか、アクセスできるゲッターを作成することができますtempmedespCost

Controlling Access to members of a Class のJava 可視性に関するドキュメントを読むことをお勧めします。

于 2012-04-30T14:05:38.467 に答える