2012-04-30 39 views
2

netbeansを使用して簡単なGUIを作成し始めましたが、今は問題に直面しています。JTextFieldのJava show result

私はこれ持っている:私はこれを実行すると予想されるように、それが動作

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に配置されません。

私はある方向に向けることができますか?

+3

"*あなたはある方向に向けることができますか?*"うん、GUIビルダーは使用しないでください。 – user1329572

+0

不適切なコード:Simuladorが表示されますが、問題には意味がありません。 Gui-builderコマンド '// TODOここにあなたの処理コードを追加:'は削除されません。そこにコードを入力したら、コメントを削除します。基本的にコードを記述しなければならないことを理解したら、テンプレートからコメントを削除してください。 –

+0

@userunknown Ok。それを削除するのを忘れました。編集されました – Favolas

答えて

5

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

privateメンバーは、クラスのメンバーである機能により加盟することができます。クラスの子供(Servicoなど)は、プライベートフィールドにアクセスすることはできません。

あなたが保護にtempmedespCostの可視性を変更したり、あなたは私はあなたがControlling Access to Members of a ClassでのJavaの可視性に関するいくつかのドキュメントを読むことをお勧めtempmedespCost

にアクセスできるようになるゲッターを作成することができます。

+0

こんにちは。それは 'tempmedespCost'が' public'または 'protected'であれば動作するはずですが、プログラムは私に警告を与えませんが、期待通りに動作しません。 getterとsetterの部分を理解しましたが、なぜ単に 'public'や' protected'が動作しないのか理解したいです。 – Favolas

+0

@Favolas:両方のクラスが同じパッケージに入っているので、 'protected'は動作しません同じパッケージ内で 'Access Specifier'を' protected'とすると 'public'と同様に動作します。あなたは 'Swingの世界 'に突入しようとしているので、あなたのプログラムを作るのに' IDE'を使うのではなく、簡単な 'Text Editor'に来てください。 –

+0

@nIcEcOw私はどのように動作しなかったのか分からない。恐らく何か間違っていた。 'エストラゴン'の提案に続き、ゲッターやセッターと一緒に使えるようにしました – Favolas

関連する問題