2

私は上記の問題を抱えています - 助けてくれる専門家がいるかどうか疑問に思っています。

  1. コンポーネントは、java.awt API からインポートしたアイテムです

  2. Eclipseが「コンテナ」をどこから派生させたのかわかりません!!

  3. 私が検索した Q では、「引数」の後に (Square) と表示されている場所に、他の人の Q のデータ型があります。私の場合は、以下と同じパッケージにあるクラスであり、エラー19行目「choras.add(trial);」に出てくるので、クラスは型として検出されていると思います。

コード:

package square;

import java.awt.Component;
import javax.swing.JFrame;
import javax.swing.JComponent;
public class SquareTest 
{
    public static void main(String[] args)
    {
        Square trial = new Square(12);
        {
            JFrame choras = new JFrame();

            choras.setSize(300, 430);
            choras.setTitle("Hi iko square yangu");
            choras.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

            choras.add(trial);

            choras.setVisible(true);
        }
    }
}
4

4 に答える 4

4

タイプ Container のメソッド add(Component) は、引数 (Square) には適用されません

javax.swing.JFrameextends java.awt.Frameextends java.awt.Windowextendsjava.awt.Containerであるため、JFrameのタイプですContainer

Container#addから拡張されたオブジェクトが必要java.awt.Componentです。

おそらく、Square(直接的または間接的に) を継承するクラスからは拡張されませんがjava.awt.Component、そのクラスを提供していないため、推測することしかできません...

于 2012-12-11T19:25:45.800 に答える
0

エラーは非常に明白です Jframe.add(Component)は引数としてjava.awt.Componentを期待しており、それにSquareを渡しているため、エラーが発生します。

于 2012-12-11T19:13:43.873 に答える
0

これに対する答えは、JFrame に Shape を追加できないことです。(コンテナについてはこちらで読むことができます)。

この投稿は、Swing でカスタム シェイプを使用する場合に役立つ可能性があります。

于 2012-12-11T19:14:42.893 に答える
0

Squareクラスで、何かを拡張/実装していることを確認してください。

public class Square extends JPanel
于 2014-09-12T02:05:56.260 に答える