修改一些java小程序代码
我有下面的小程序代码,我想修改它,使每行的第一个和最后一个点都是红色的。我真的很难开始做这件事修改一些java小程序代码,java,graphics,Java,Graphics,我有下面的小程序代码,我想修改它,使每行的第一个和最后一个点都是红色的。我真的很难开始做这件事 import java.applet.*; import java.awt.*; import java.awt.event.*; public class ChineseCheckerboardApplet extends Applet { public void init() { add(new ChineseCheckerboard(this)); } } c
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class ChineseCheckerboardApplet extends Applet {
public void init() {
add(new ChineseCheckerboard(this));
}
}
class ChineseCheckerboard extends Canvas {
public ChineseCheckerboard(Applet parentApplet) {
setSize(400, 400);
}
public void paint(Graphics g) {
for (int i = 0; i < holesInRow.length; i++)
drawRow(g, i);
}
void drawRow(Graphics g, int row) {
int centerX = getWidth() / 2; // figure out center of display
int startY = 0;
int numHoles = holesInRow[row];
int rowWidth = numHoles * holeDiam + (numHoles-1) * holeGap; //row width is number of holes + appropriate number of spacings
int startX = centerX - rowWidth / 2; // Starting horizontal position is centerX less half the row width
int y = startY + row * (holeDiam + holeGap); // Vertically position based upon which row you're displaying
g.setColor(Color.BLACK);
for (int i = 0; i < numHoles; i++) { // Draw each hole
g.fillOval(startX + i * (holeDiam + holeGap), y, holeDiam, holeDiam);
g.drawOval(startX + i * (holeDiam + holeGap), y, holeDiam, holeDiam);
}
}
final int holeDiam = 15;
final int holeGap = (int)(holeDiam * 0.25);
// Here's the array containing the number of holes per row
int [] holesInRow = {1, 2, 3, 4, 13, 12, 11, 10, 9, 10, 11, 12, 13, 4, 3, 2, 1};
import java.applet.*;
导入java.awt.*;
导入java.awt.event.*;
公共类ChineseCheckerboardApplet扩展Applet{
公共void init(){
增加(新的中国棋盘(本));
}
}
类ChineseCheckerboard扩展画布{
公共中文检查板(小程序parentApplet){
设置大小(400400);
}
公共空间涂料(图g){
对于(int i=0;i
}你是说像 只需要一个简单的
if
语句来更改行上点的每次迭代的点的条件
for (int i = 0; i < numHoles; i++) { // Draw each hole
if (i == 0 || i == numHoles - 1) {
g.setColor(Color.RED);
} else {
g.setColor(Color.BLACK);
}
g.fillOval(startX + i * (holeDiam + holeGap), y, holeDiam, holeDiam);
g.drawOval(startX + i * (holeDiam + holeGap), y, holeDiam, holeDiam);
}
for(int i=0;i
不要在小程序上调用setSize
,小程序的大小由加载它的html代码定义,而不是小程序代码。此外,小程序正在使用布局管理器,因此它不会对ChineseCheckerboard
产生任何影响。你为什么要使用AWT库?这是一个非常糟糕的问题的好答案。@AnubianNoob哦,来吧。这不是个坏问题。尽管原因很接近,但OP清楚地表达了她所需要的,并展示了她能够实现的目标。但是,这确实是一个很好的答案。另外,这张图很好,特别是因为它说明了最终结果与“使所有边界点变红”(这本来是一个更有趣的问题)并不完全相同。。。不过表达得不是很好。@DavidWallace我认为核心问题在于它读起来有点像“我发现了这段代码并想修改它”,而不是我“写了这段代码,现在想修改它”-但那只是我…@DavidWallace没有投反对票,也没有投票赞成结束;),但我认为人们已经厌倦了海报的缺乏努力,我只是说,而不是争论;)