Я установил свой JPanel в GridLayout (6,6), с размером (600 600) Каждая ячейка сетки будет отображать одно изображение с разной шириной и высотой. Картинка сначала добавляет JLabel, а JLabel затем добавляется в ячейки.Как получить координату Gridlayout
Как получить координату изображений в ячейках, а не координату ячеек? Пока что они дают эти координаты, которые равны по высоте и ширине даже на экране, изображения показываются в разных размерах.
например.
java.awt.Rectangle[x=100,y=100,width=100,height=100]
java.awt.Rectangle[x=200,y=100,width=100,height=100]
java.awt.Rectangle[x=300,y=100,width=100,height=100]
Причина, почему я использовал GridLayout вместо GridBagLayout является то, что я хочу каждый фотографии, чтобы иметь границу. Если я использую GridBagLayout, сетка будет расширяться в соответствии с размером изображения. Я хочу, чтобы размер сетки был в размере исправления.
JPanel pDraw = new JPanel(new GridLayout(6,6));
pDraw.setPreferredSize(new Dimension(600,600));
for (int i =0; i<(6*6); i++)
{
//get random number for height and width of the image
int x = rand.nextInt(40)+(50);
int y = rand.nextInt(40)+(50);
ImageIcon icon = createImageIcon("bird.jpg");
//rescale the image according to the size selected
Image img = icon.getImage().getScaledInstance(x,y,img.SCALE_SMOOTH);
icon.setImage(img);
JLabel label = new JLabel(icon);
pDraw.add(label);
}
for(Component component:components)
{
//retrieve the coordinate
System.out.println(component.getBounds());
}
Редакцией: Я пробовал это, но не работает :-(
for(Component component: pDraw.getComponents()){
System.out.println(((JLabel)component).getIcon());
}
Как я могу получить выход, как эти
java.awt.Rectangle[x=300,y=100,width=50,height=40]
java.awt.Rectangle[x=400,y=400,width=60,height=50]