ウィンドウの内容全体を手動で描画したいので、メソッドをサブクラス化java.awt.Frame
し、オーバーライドしました。paint()
ただし、グラフィックス オブジェクトでは、(0,0)は、最初の描画可能なピクセルではなく、タイトル バーの装飾内のウィンドウの左上隅に対応します。
Mac OS X 固有のfudge factorを使用せずに、クロスプラットフォームの方法で最初の描画可能なピクセル (つまり、装飾の高さ) の座標を決定できますか? ウィンドウの実際の描画可能領域を見つけるために、 Panelコンポーネントをネストする必要がありますか?
ここで、私のコードは、ウィンドウのペイント可能領域内の青い正方形を中央に配置できません。
@Override
public void paint (Graphics g) {
g.setColor(Color.BLUE);
g.setPaintMode();
g.fillRect(30, 30, getWidth()-60, getHeight()-60);
}