import javax.swing.*;
import java.awt.*;
public class CGLinesGrid extends JFrame {
public CGLinesGrid() {
super ("Exercise 4");
setSize (500, 500);
setVisible(true);
}
public void paint (Graphics g) {
for (int i = 1; i<=9 ; i++) {
g.drawLine(70, 30+i*40, 390, 30+i*40);
g.drawLine(30+i*40, 70, 30+i*40, 390);
}
for (int i = 1; i<=9 ; i++) {
g.drawOval(70, 20+i*40, 40, 10+i*30);
}
}
public static void main (String[] args) {
CGLinesGrid draw = new CGLinesGrid();
draw.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
-1
A
答えて
0
解決策に至るまでのカップル。
@RealSkepticが言ったように、決してあなたのコンポーネントの中からpaint()
メソッドを呼び出してください。必ずpaintComponent(Graphics g)
メソッドを使用してください。
第二に、常に
super.paintComponent(g);
サードを使用して、その親クラスのpaintComponentメソッドを呼び出しpaintComponent()
メソッドを呼び出すときに、paintComponent()メソッドはJPanel
を使用し、JFrame
上で直接呼び出すことはできません。
今すぐ解決してください。
8x8グリッドの四角形が必要です。四角形の内側にはそれぞれ円があります。
これを行う最も簡単な方法は、GridLayout
を持つJPanel
を使用し、64 JLabel
を追加することです。それぞれの `JLabelはその正方形の中に正方形と円を印刷します。
我々は、正方形と円をプリントアウトのJLabelを作成する必要があります下最低料金:
:8×8グリッド内のすべてのこれらのJLabel
Sが含まれている私たちは
JPanel
が必要
class SquareWithCircleLabel extends JLabel {
@Override
public void paintComponent(Graphics g) {
//notice the call to its parent method
super.paintComponent(g);
//draw the square and circle
g.drawRect(0, 0, this.getWidth(), this.getHeight());
g.drawOval(1, 1, this.getWidth() - 1, this.getHeight() - 1);
}
}
次
class PaintPanel extends JPanel {
PaintPanel() {
//give it a 8 x 8 GridLayout
setLayout(new GridLayout(8, 8));
//add 81 labels to the JPanel and they will automatically be formatted into a 9 x 9 grid because of our GridLayout
for (int i = 0; i < 64; i++) {
add(new SquareWithCircleLabel());
}
}
}
は、今、私たちは、単にコンストラクタで私たちのJFrame
このJPanel
を追加する必要が
add(new PaintPanel());
完全なコードは次のようになります。
import javax.swing.*;
import java.awt.*;
public class CGLinesGrid extends JFrame {
public CGLinesGrid() {
super ("Exercise 4");
setSize (500, 500);
add(new PaintPanel());
setVisible(true);
}
public static void main (String[] args) {
CGLinesGrid draw = new CGLinesGrid();
draw.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
class PaintPanel extends JPanel {
PaintPanel() {
setLayout(new GridLayout(9, 9));
for (int i = 0; i < 81; i++) {
add(new SquareWithCircleLabel());
}
}
}
class SquareWithCircleLabel extends JLabel {
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawRect(0, 0, this.getWidth(), this.getHeight());
g.drawOval(1, 1, this.getWidth() - 1, this.getHeight() - 1);
}
}
}
関連する問題
- 1. Androidビットマップクロップ楕円形
- 2. 長方形/楕円形プログラム
- 3. Microsoft Wordで楕円形の中にテキストを書く方法
- 4. cssで楕円形の長方形を作成するには?
- 5. シンプルなJavaScriptの楕円形(...)
- 6. wpfの楕円形ボタン
- 7. iOS、写真を撮るが、楕円形の写真をフレームに入れる
- 8. Flutter - テキストに楕円を挿入する
- 9. アンドロイド楕円形状2色
- 10. 中心楕円の起点
- 11. 楕円形の塗り方は?
- 12. ggbiplotに楕円中心を追加するには?
- 13. ダブル幅の楕円形のサファリsvg
- 14. 楕円形のプログレスバーの垂直インジケータ
- 15. UIImageを楕円形や円形に切り抜くにはどうすればいいですか?
- 16. Gdkカイロの描画楕円形
- 17. 楕円形状ジオメトリの作成方法
- 18. いくつかの点に続いて形(楕円形または楕円形)を描き、その領域を計算する方法は?
- 19. URLの一部を楕円形にする
- 20. は楕円
- 21. 描画長方形と楕円
- 22. 瞳孔中心の楕円近似
- 23. Kivy - 楕円ウィジェット内の中心画像
- 24. 楕円形を配列に描画する
- 25. 多角形を楕円に追加する方法。
- 26. 円形のアイコンを円に挿入
- 27. 楕円形の絵の周りに枠を描きます
- 28. CGContextDrawRadialGradientを真円形の代わりに楕円形で描画する方法はありますか?
- 29. HTML5キャンバス楕円のアウトラインが変形して変形する
- 30. WPFアプリケーションで楕円形のボタンを作成する方法は?
問題は何ですか? – ChiefTwoPencils
私は8x8グリッドを作成しました。私はそれらの中に楕円形を入れたい。あなたは私を助けることができますか? : –
'paint'をオーバーライドしないでください。あなたは' paintComponent'メソッドをオーバーライドすることになっています。 – RealSkeptic