如何自动调整矩形的位置?
例如我有5个矩阵
这里是我的代码:
import java.awt.*;
import javax.swing.*;
import java.util.*;
public class gambar
{
JFrame fr=new JFrame("exampe");
JScrollPane sc;
int hight,weight;
JTabbedPane tab=new JTabbedPane();
gambar()
{
int[]x=new int[5];
int[]y=new int[5];
fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fr.setLocation(0,0);
fr.setExtendedState(JFrame.MAXIMIZED_BOTH);
fr.setLayout(new GridLayout(1,1));
tab.addTab("Panel1",new panel1());
fr.add(tab);
fr.show();
}
public static void main(String[] args)
{
new gambar();
}
}
class panel1 extends JPanel
{
panel1()
{
}
public void paintComponent(Graphics g3)
{
int x=0,y=0;
for(int i=1;i<=5;i++)
{
if(i==1)
{ x=50;y=50; }
else if(i==2)
{ x=300;y=50; }
else if(i==3)
{ x=50;y=200; }
else if(i==4)
{ x=300;y=200;}
else if(i==5)
{ x=175;y=125; }
g3.setColor(Color.yellow);
g3.fillRect(x,y,90,30);
g3.setColor(Color.black);
g3.drawString("square "+i,x+5,y+15);
}
}
}
输出在这里:
如果我有4个rect,那么输出
如果3 rect,输出就像这里
我不知道如何在没有设置坐标的情况下自动调整该位置 对不起我的英文。
答案 0 :(得分:1)
这是所有基本的几何形状。把它写在纸上。
假设该区域的边被称为w
和h
,那么您可以轻松计算每个矩形的中心。从中心您减去矩形宽度的一半以获得它的leftedge x坐标,并获得其顶边y坐标的一半高度等。
如果你想在它周围保留一些空间,你首先从上面的w
和h
中减去该空间,然后将每个矩形的每个x和y坐标加上一半的空间。 / p>
x1 = 0 + rectangle_width/2, y1 = 0 + rectangle_height / 2
x2 = w - rectangle_width/2, y2 = 0 + rectangle_height / 2
x3 = w / 2, y3 = h / 2
x4 = 0 + rectangle_width/2, y4 = h - rectangle_height / 2
x5 = w - rectangle_width/2, y5 = h - rectangle_height / 2
x1 = 0 + rectangle_width/2, y1 = 0 + rectangle_height / 2
x2 = w - rectangle_width/2, y2 = 0 + rectangle_height / 2
x3 = 0 + rectangle_width/2, y3 = h - rectangle_height / 2
x4 = w - rectangle_width/2, y4 = h - rectangle_height / 2
x1 = 0 + rectangle_width/2, y1 = 0 + rectangle_height / 2
x2 = w - rectangle_width/2, y2 = 0 + rectangle_height / 2
x3 = w / 2, y2 = h - rectangle_height / 2