import javax.swing.JPanel;
import java.awt.Graphics;
import java.awt.Color;
public class Drawing extends JPanel
{
private Color borderColor = Color.BLACK;
private int[] borderX1 = {0};
private int[] borderY1 = {0};
private int[] borderX2 = {500};
private int[] borderY2 = {300};
/**
* Constructor for objects of Drawing class type
*/
public Drawing( Color background )
{
setBackground( background );
}
public void paintComponent( Graphics g )
{
// calls the paintComponent method defined within the parent class, JPanel
super.paintComponent( g );
// display words (i.e. string, text)
g.setColor( Color.BLUE );
// Sets starting coordinate for first letter.
g.drawString( "My Name", 375, 50 );
// draw various shapes with different colors
// Shapes - (x1,y1,x2,y2);
g.setColor( Color.RED );
g.fillRect( 100, 100, 70, 50 );
g.drawRect( 100, 170, 70, 50 );
g.setColor( Color.GREEN );
g.fillOval( 120, 10, 70, 50 );
g.drawOval( 20, 50, 70, 50 );
g.setColor( Color.MAGENTA );
g.drawRect( 25, 50, 150, 150 );
g.setColor( Color.BLUE );
g.drawLine( 200, 140, 300, 100 );
g.drawLine( 300, 100, 400, 140 );
g.drawRect( 200, 140, 200, 100 );
// Border
g.setColor ( borderColor );
g.drawRect( 0, 0, 500, 300);
for (int i = 1; i < 10; i ++) {
borderX1[i] = ( borderX1[i-1] + 1 );
borderX1[i] = ( borderY1[i-1] + 1 );
borderX1[i] = ( borderX2[i-1] - 1 );
borderX1[i] = ( borderY2[i-1] - 1 );
g.drawRect( borderX1[i], borderY1[i], borderX2[i], borderY2[i] );
}
}
}
本主题的重点是代码末尾的for循环,以及我在开头初始化的多个int []数组。
我想为我的应用程序创建一个边框,但我希望能够调整厚度。我创建了一个数组,我尝试通过在前一个位置加一个或减去一个来调整数组的下一个位置的值。
简而言之,我试图通过在for循环中重复相同的代码行来创建多个边框。这样,边框就会出现单个粗边框。
我的问题是,这是for循环的有效用途吗? for循环的每次迭代都会删除for循环的前一个边界吗?如果前者是真的,那么无论如何都要以这种方式使用for循环吗?
哦,我是Java(和编程)的新手,所以我的语法可能已关闭,但我只是对for循环中使用的逻辑感到好奇。
编辑:
@Johnny - &gt;感谢您的投入。我将尝试重新配置阵列。
@Micheal Pickett - &gt;我正在使用我正在使用的东西,因为它是我班级所必需的。我有一点编程经验,但我不熟悉数组,所以我想我会花点时间来了解它们。
是的,这是一个复制错误,很好的捕获。