10
我在程序中創建了一個網格。以下是用於創建網格的代碼。在Java中爲網格創建繪製矩形(填充黑色)功能
import java.awt.Graphics;
import javax.swing.JComponent;
import javax.swing.JFrame;
class Grid extends JComponent {
public void paint(Graphics g) {
g.drawRect (10, 10, 800, 500);
for (int i = 10; i <= 800; i+= 10)
g.drawLine (i, 10, i, 510);
for (int i = 10; i <= 500; i+= 10)
g.drawLine (10, i, 810, i);
}
}
public class CoreControl {
public static void main(String[] a) {
JFrame window = new JFrame();
window.setSize(840,560);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.getContentPane().add(new Grid());
window.setVisible(true);
}
}
我想要做的是創建一個函數,根據我給它的座標繪製一個矩形(填充黑色)。基本上我想用黑色填充網格的某些單元格,我的想法是在單元格座標上繪製黑色填充的矩形。我如何製作這個功能?我嘗試了另一個名爲drawRectangle的類,並在主函數中調用它,就像window.getContentPane()。add(new drawRectangle());然而,這並沒有工作(只有drawRectangle顯示,而不是網格)。
我也希望能夠反覆使用這個函數來保持創建矩形。
如何創建此功能?如果你知道一個更好的方式,我應該構造這個程序,請讓我知道(我是Java新手,所以我願意接受任何建議)。
此更新內填充細胞可能聽起來很愚蠢,但我是新來的Java。我如何使用Graphics.fillRect(int,int.int,int)?現在這是如何使用它:function drawRectangle(int x1,int y1,int x2,int y2){Graphics.fillRect(int,int.int,int)}這可能嗎?程序是否自動將矩形添加到框架? – 2013-04-08 03:06:45
編號'fillRect'是'Graphics'的一種方法,您需要引用'Graphics'上下文。所有的繪畫應該在'paint'方法的上下文中完成(最好是'paintComponent')。在你的'Grid'類中,我會提供一種叫'fillGrid(int x,int y)'的方法,告訴你要填充什麼單元格。在你的'paintComponent'方法中,然後我將確定這個單元格的矩形邊界,並使用'fillRect'(ps我更新了答案;))填充 – MadProgrammer 2013-04-08 03:10:29
好吧,以便測試fillRect我已經添加了public void paint(Graphics g ,int x,int y)g.fillRect(x,y,10,10); }。我如何使用這個功能? – 2013-04-08 03:16:24