как автоматически отрегулировать место прямоугольника?
например, у меня 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, вывод, как здесь
я понятия не имею, как автокорректировать место без заданной координаты.
Извините за мой английский.
Все это основная геометрия. Напишите его на бумаге.
Предположим, что стороны области называются w
и h
, тогда вы можете легко вычислить центр каждого прямоугольника. Из центра вычитаем половину ширины прямоугольника, чтобы получить координату x, и половину высоты получить координату y верхнего края и т.д. Если вы хотите сохранить некоторое пространство вокруг него, вы сначала вычтите это пространство из w
и h
выше, и вы добавляете половину этого пространства к каждой координате x и y каждого из прямоугольников.
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