私は長方形内に長方形を構築しようとしています。長方形の「壁」は、高さがbg.getHeight() - ground.getHeight()の特定の位置にある必要があります。なんらかの理由で、長方形の「壁」は依然としてアプレットの底に伸びています。幅や位置などの他の値はすべて正常に動作しています。 300の高さのアプレットで、静的な120を引くと、それは動作しますが、ground.getHeightの値は実際に60で、60を引くと、それはまだ境界線まで伸びています。私は矛盾と混同しています。java Rectangle getHeight()奇妙な動作
import javax.swing.JApplet;
import java.awt.*;
public class House_JM extends JApplet {
public void paint(Graphics page) {
Rectangle ground = new Rectangle(0, (int) (getSize().height * .8), getSize().width,
(int) (getSize().height * .2));
Rectangle bg = new Rectangle(0, 0, getSize().width, (int) (getSize().height * .8));
page.setColor(Color.green);
page.fillRect((int) ground.getX(), (int) ground.getY(), (int) ground.getWidth(), (int) ground.getHeight());
page.setColor(Color.blue);
page.fillRect((int) bg.getX(), (int) bg.getY(), (int) bg.getWidth(), (int) bg.getHeight());
Rectangle walls = new Rectangle((int) (bg.getWidth()/2 - bg.getWidth() * .1), (int) (bg.getHeight() * .5),
(int) (bg.getWidth() * .4), (int) ((bg.getHeight() - ground.getHeight())));
page.setColor(Color.red);
page.fillRect((int) walls.getX(), (int) walls.getY(), (int) walls.getWidth(), (int) walls.getHeight());
System.out.println(bg.getHeight());
}
}
有効な[mcve]、***小さな***プログラムを作成し、投稿してください。私たちは、コピー、貼り付け、コンパイル、実行が可能で、あなたの問題を示すコードを持っています。プログラム全体を尋ねるのではなく、十分にテストできるだけです。 –
また、アプレット内で直接描画していますか?これをしないで、代わりにアプレットによって表示されるJPanel内に描画します。また、この技術がオラクルによって推奨されなくなったため、なぜあなたはアプレットを使用していますか? –
完全なコードの投稿を編集しました。私はそれが学校の割り当てであるため、アプレットを使用しています。 – user1660886