هنا قمت برسم شبكة 7 أعمدة * 6 صفوف . وأريد رسم دائرة فوق الشبكة - كنت قديماً كتبت مثال بسيط لهذه القضية و لكن اليوم كتبته بطريقة أخرى - و قمت بكتابة الجزء الخاص برسمها و لكنها لم تظهر ما السبب ؟؟
انظر للكود :
--------------------
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.JFrame;
public class TestNet extends JFrame {
private DrawingNet drawingNet;
public TestNet() {
drawingNet = new DrawingNet();
getContentPane().add(drawingNet, BorderLayout.CENTER);
}
public static void main(String[] args) {
TestNet testNet = new TestNet();
testNet.setDefaultCloseOperation(TestNet.EXIT_ON_CLOSE);
testNet.setSize(new Dimension(600, 300));
testNet.setLocationRelativeTo(null);
testNet.setVisible(true);
testNet.setExtendedState(MAXIMIZED_BOTH);
}
}
-----------------------------------------------------------------
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JPanel;
class DrawingNet extends JPanel {
private static final int ROW = 6, COL = 7;
private int X_START, Y_START, DISTANCE_Y, DISTANCE_X;
private int x_OVAL = 348, y_OVAL = 17, OVAL_Width = 83, OVAL_HEIGHT = 83;
public DrawingNet() {
MyOval myOval = new MyOval();
myOval.setOval_X(x_OVAL);
myOval.setOval_Y(y_OVAL);
myOval.setOVAL_WIDTH(OVAL_Width);
myOval.setOVAL_HEIGHT(OVAL_HEIGHT);
add(myOval);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
drawingNet(g2d);
}
private void drawingNet(Graphics2D g2d) {
X_START = 97;
Y_START = 100;
DISTANCE_Y = 0;
DISTANCE_X = 0;
g2d.setColor(Color.BLACK);
for (int r = 0; r < ROW; r++) {
g2d.drawLine(X_START, Y_START + DISTANCE_Y, X_START * COL, Y_START + DISTANCE_Y);
DISTANCE_Y += 83;
}
for (int c = 0; c <= COL; c++) {
g2d.drawLine(X_START + DISTANCE_X, Y_START, X_START + DISTANCE_X, (Y_START * ROW) - 83);
DISTANCE_X += 83;
}
}
}
------------------------------------------------------------------------------------
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JPanel;
class MyOval extends JPanel {
private int oval_X, oval_Y;
private int OVAL_WIDTH, OVAL_HEIGHT;
public MyOval() {
}
public void setOVAL_HEIGHT(int OVAL_HEIGHT) {
this.OVAL_HEIGHT = OVAL_HEIGHT;
}
public void setOVAL_WIDTH(int OVAL_WIDTH) {
this.OVAL_WIDTH = OVAL_WIDTH;
}
public void setOval_X(int oval_X) {
this.oval_X = oval_X;
}
public void setOval_Y(int oval_Y) {
this.oval_Y = oval_Y;
}
public int getOVAL_HEIGHT() {
return OVAL_HEIGHT;
}
public int getOVAL_WIDTH() {
return OVAL_WIDTH;
}
public int getOval_X() {
return oval_X;
}
public int getOval_Y() {
return oval_Y;
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(Color.BLUE);
g2d.fillOval(getOval_X(), getOval_Y(), getOVAL_WIDTH(), getOVAL_HEIGHT());
}
}شكراً مقدماً

