2
こんにちは、私のJFrame内のJPanelの起点を参照するのに問題があります。私のJPanelはコンストラクタのように設定されていました。私はJPanelの左端にある行を追加したいと思います。 paintメソッドの最後のコマンドは、私の問題とは無関係ですJFrameでJPanelの座標を参照する
public void paint(Graphics g){
super.paint(g);
Graphics2D g2d = (Graphics2D)g;
g2d.drawLine(table.getX(), table.getY(), table.getX(), (table.getY() + table.getHeight()));
g2d.drawLine(100, 100, (int)Math.round(cueBall.getPositionX()), (int)Math.round(cueBall.getPositionY()));
}
その後
table = new JPanel();
table.setBackground(Color.green);
table.setBounds(10,10, 600, 600);
table.setSize(width.getValue(), height.getValue());
add(table);
paintメソッド
は... ... コードは(10、10としての原点を取得しているように見えます)、それをcontentPaneではなくJFrame全体に適用します。私はcontentPaneを完全に理解していませんが、add()がコンテンツペインに追加され、次にcontentPaneから座標を参照していると思っています...なぜsetBounds()がJPanelを追加したのか分かりませんcontentPaneだけに関連して(10,10)を求めていましたが、paint()を実行すると、contentPaneに関連して座標を取得するように見えますが、JFrameを参照してそれらの座標をペイントしているようです。私はラインを下に移動するための値を追加することができたが、それは貧弱な解決策であると思う。contentPaneに独自のpaint()メソッドなどを追加する必要がありますか?
それは意味があります...そしてその理由は私が設定された範囲を使用した..私はレイアウトに問題があって、学校プロジェクトのために私は計画しているので、かなり彼らの下でうんざりしたくない私がそれを機能させると、それらを見つけ出します。 – Yoshi
* "私はそれが機能したら、それらを理解することを計画しています" *あなたのGUIはあなたがするまで機能しません。 –
@AndrewThompson私はこれを昨夜の難しい方法で見つけました:)私は計画より早くレイアウトマネージャーを学ぶように見えます – Yoshi