在Java中相邻绘制矩形
我正在学习用Java编写代码。我需要做一个评估:我必须创建一个java应用程序,该应用程序将执行以下操作:在Java中相邻绘制矩形,java,swing,graphics,draw,Java,Swing,Graphics,Draw,我正在学习用Java编写代码。我需要做一个评估:我必须创建一个java应用程序,该应用程序将执行以下操作: 允许用户指定输入矩形的数量(3到30之间) 生成所需数量的输入矩形(具有随机宽度和高度),并将其写入文件(人类可读) 从上述步骤中生成的文件中读取随机生成的输入矩形 以图形方式显示输入矩形,正确地排列在彼此旁边 计算输出矩形 以图形方式显示输出矩形,并将其正确放置在彼此旁边。注意:输入和输出矩形必须同时显示 将输出矩形坐标写入输出文件(人类可读)。” 这些矩形是简单的方框(不是花哨的颜
- 允许用户指定输入矩形的数量(3到30之间)
- 生成所需数量的输入矩形(具有随机宽度和高度),并将其写入文件(人类可读)
- 从上述步骤中生成的文件中读取随机生成的输入矩形
- 以图形方式显示输入矩形,正确地排列在彼此旁边
- 计算输出矩形
- 以图形方式显示输出矩形,并将其正确放置在彼此旁边。注意:输入和输出矩形必须同时显示
- 将输出矩形坐标写入输出文件(人类可读)。”
导入java.awt.Graphics;
导入javax.swing.JFrame;
导入java.util.Random;
导入java.util.Scanner;
公共类final_rect扩展JFrame
{
公开决赛
{
片名(“教程”);
设置大小(700500);
setVisible(真);
setDefaultCloseOperation(关闭时退出);
}
公共空间涂料(图g)
{
int x=50;
int y=50;
随机rnd=新随机();
对于(inti=1;i简单方式:
您可以创建一个起始位置x和y(如0,0),并不断将宽度添加到x和/或高度添加到y,然后在下一个要绘制的重角上使用它们,而不是固定起始位置(这将使它们彼此位于内部)
哦,为了确保您知道:drawRect(int-startX,int-startY,int-width,int-height)
简单方法:
您可以创建一个起始位置x和y(如0,0),并不断将宽度添加到x和/或高度添加到y,然后在下一个要绘制的重角上使用它们,而不是固定起始位置(这将使它们彼此位于内部)
哦,只是为了确保您知道:drawRect(int-startX,int-startY,int-width,int-height)
您正在将它们绘制在彼此的顶部。这一行:
g.drawRect(205,300,height,width);
从点(205300)开始绘制所有矩形
您必须更改前两个参数的值(可能只有其中一个)。我不会给出确切的代码,因为这是家庭作业,但是:
您有一个起始位置,称之为(205300),就像在代码中一样,在绘制矩形时,您有每个矩形的宽度,有了这些信息,您应该能够确定下一个位置是什么
另一件事是,您正在创建一个新的随机
对象。在循环中,您应该只在方法顶部创建一个对象(或在构造函数时为整个类创建一个对象)。您正在将它们绘制在彼此的顶部。此行:
g.drawRect(205,300,height,width);
从点(205300)开始绘制所有矩形
您必须更改前两个参数的值(可能只有其中一个)。我不会给出确切的代码,因为这是家庭作业,但是:
您有一个起始位置,称之为(205300),就像在代码中一样,在绘制矩形时,您有每个矩形的宽度,有了这些信息,您应该能够确定下一个位置是什么
另一件事是,您正在创建一个新的随机对象。通过循环,您应该只在方法顶部创建一个对象(或在构造函数时为整个类创建一个对象)。谢谢大家,@Montolide,我已经尝试过了,g.drawRect(205+width,300,height,width);某些矩形。仍然重叠。因为我使用了随机W/H。现在正在玩代码。矩形也被画成指向下的,就像它附着在天花板上并向下。我需要它在地面上长大。我尝试使用0轴,但仍然有问题。有什么建议吗?另一件事是我需要p接受用户输入以绘制矩形数量的程序。目前,在我的代码中,我使用了“iThanks Guys,@Montolide,我已经尝试过了,g.drawRect(205+width,300,height,width);某些矩形。仍然重叠。因为我使用了随机W/H。现在正在玩代码。矩形也被画成指向下的,就像它附着在天花板上并向下。我需要它在地面上长大。我尝试使用0轴,但仍然有问题。有什么建议吗?另一件事是我需要p接受用户输入以绘制矩形数量的程序。目前,在我的代码中,我使用了“iThank u Montolide”,我已经尝试过了,g.drawRect(205+width,300,height,width);某些矩形。仍然重叠。因为我使用了随机W/H。现在正在玩代码。矩形也被画成指向下,就像它附着在天花板上并向下。我需要它在地面上长大。我尝试使用0轴,但仍然有问题。有什么建议吗?另一件事是我需要程序ram以接受用户的输入来绘制矩形的数量。目前在我的代码中,我使用的是(0,0)
位置是JFrame的左上角点,因此您需要从JFrame的高度减去矩形高度再到JFrame的高度(JFrame的底部)。getHeight()
将对您有所帮助。关于(205+宽度),您将丢失绘制的每个重角的最后位置,请尝试使用变量保持此值。变量编号也一样,请尝试使其可以绘制