2012-02-15 9 views
0

スイングコンポーネントをアプレットに追加すると、スイングコンポーネントは表示されません。ときどき私のマウスをいくつかのJButtonの周りに動かすと(奇妙なことに)ポップアップします。メソッドペイント(Graphics g){}と更新(Graphics g){}がありますが、すべてのイメージとペイントコードを削除してもコンポーネントは表示されません。これはアプレットで起こる普通のことですか、間違っていますか?アプレットのスイングコンポーネントが機能しない

+0

あなたには、いくつかのコード – vikky

+1

を送ることができ、あなたのアプレットは、JAppletのを拡張していますか? –

+1

アプレットが[イベントディスパッチスレッド](http://download.oracle.com/javase/tutorial/uiswing/concurrency/initial.html)で構築されていることを確認してください。 – trashgod

答えて

0

わかりました。私の愚かな間違い。私はJAppletではなくAppletを使っていました。

1

これはアプレットではなく、Javaプログラムでも一般的です。私が知る限り、私は非互換性の問題のためにそのような多くのケースを満たしています。このことが起こると、ウィンドウを最小化してサイズを変更すると、すべてのオブジェクトが必要に応じてポップアップします。私はそこに解決策があるかどうかはわかりません。私は1つあるべきだと思う。これは主に、オブジェクトが重なっている場合に発生します。

EDIT:情報が役に立つことがある情報:通常のJavaプログラムでウィンドウのサイズを変更すると、javax.swing.JComponent.repaint()が呼び出されます。

+0

* "Javaプログラムでも" *いいえ、コードが根本的に壊れていない限りではありません。 –

+0

@AndrewThompson私はJFrameとNull Layoutを使ってプログラムを書いた。このことは、オブジェクトが重なっているときに非常に頻繁に起こります。別のものの上にあるべきオブジェクトが時々カバーされます。私のコードをどこかに掲載することができれば、私のコードは根本的に間違っているとは思わない。 – YankeeWhiskey

+0

* "..ヌルレイアウト" *問題の原因があります。 See [setLayout(null)は決して必要ありません。 Ever!](https://forums.oracle.com/forums/thread.jspa?threadID=1351374)を参照してください。 –

1

私も同じ問題を抱えていた、ここで私を助けたソリューションです:

を適切にすべてのコンテナをペイントにsuper.paint(g)を使用するようにペイント(グラフィックスグラム)の方法では。

同様:

void paint(Graphics g) 

{ 

    super.paint(g); 

//code to draw something 

}