[解決済み] JavaでdrawCircleメソッドがdrawOvalを呼び出すようにする
2022-02-07 16:50:23
質問
次のようなdrawCircleメソッドを作りたいのですが。
public void drawCircle(int x, int y, int radius)
で、その中心と半径を持つ円を描画します。 drawCircleメソッドはdrawOvalを呼び出す必要があります。 私はそれにGraphicsを渡すことなく、私のdrawCircleメソッドからdrawOvalを呼び出すことができる方法がよく分かりません。 これは可能ですか?
私が持っているのはこれです。
import java.awt.*;
import javax.swing.*;
class test
{
public static void main(String[] args)
{
JFrame frame = new JFrame("test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(new MyPanel());
frame.pack();
frame.setVisible(true);
}
}
class MyPanel extends JPanel
{
MyPanel()
{
setBackground(Color.WHITE);
setPreferredSize(new Dimension(250,250));
}
public void paintComponent(Graphics page)
{
super.paintComponent(page);
drawCircle(50,50,20);
}
private void drawCircle(int x, int y, int radius)
{
drawOval(x - radius, y - radius, radius*2, radius*2);
}
}
解決方法は?
グラフィックコンテキストを取得するには
getGraphics()
を swing コンポーネントで使用します。しかし、私は、グラフィックス・コンテキストを受け取るための描画メソッドを作成します。
例えば
private void drawCircle(Graphics g, int x, int y, int radius) {
g.fillOval(x-radius, y-radius, radius*2, radius*2)
}
あるいは
private void drawCircle(int x, int y, int radius) {
getGraphics().fillOval(x-radius, y-radius, radius*2, radius*2)
}
を意識してください。
getGraphics()
を返すことができます。
null
しかし paint() メソッドの中で drawCircle() メソッドを呼び出し、Graphics コンテキストを渡す方がはるかに良い方法です。
例
public void paint(Graphics g) {
super.paint(g);
drawCircle(g, 10, 10, 5, 5);
}
関連
-
[解決済み】Android Studio クラス org.codehaus.groovy.runtime.InvokerHelper を初期化できませんでした。
-
[解決済み] java のクラス内のコンストラクタは、指定された型に適用できない
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] java.sql.SQLException: ユーザー 'root'@'localhost' (using password: YES) のためのアクセスが拒否されました。
-
[解決済み] java のクラス内のコンストラクタは、指定された型に適用できない
-
[解決済み】Doubleはdereferencedできない?
-
[解決済み] hibernate のプロパティが見つかりません。
-
[解決済み】なぜjava.io.Fileにはcloseメソッドがないのでしょうか?
-
[解決済み】「java -cp」と「java -jar」の違い?
-
[解決済み】keytoolエラー 鍵屋が改ざんされたか、パスワードが不正確だった場合
-
[解決済み】Javaを使用するSelenium - ドライバの実行ファイルのパスは、webdriver.gecko.driverシステムプロパティで設定する必要があります。
-
[解決済み】koch snowflake java recursion
-
[解決済み] SQLエラー。0, SQLState: 08S01 通信リンクの失敗 [重複]。