我有一个类别列表,每个类别都有一个图像,我需要一个接一个地显示这些图像(连续 4 个),它们之间有一些空格。我在显示最后一个标签时遇到问题,似乎 setBounds 方法不会影响它。我创建了一个 JPanel,并将所有包含图像的标签添加到面板中。这是我的源代码,我还添加了屏幕截图的链接
谢谢!
JFrame frame = new JFrame("test");
JPanel panel = new JPanel();
panel.setBackground(Color.white);
java.util.Iterator<Entry<Integer, Y2category>> it = configFile.categories.entrySet().iterator();
int positionx = 50;
int positiony = 50;
int linecounter = 0;
while( it.hasNext() )
{
Map.Entry<Integer, Y2category> pairs = (Entry<Integer, Y2category>) it.next();
Y2category cat = (Y2category) pairs.getValue();
JLabel label = new JLabel( new ImageIcon( "img\\main\\black.png" ), JLabel.CENTER );
label.setBounds(positionx,positiony,115,179);
label.setFont(new Font("Arial", Font.PLAIN, 14));
panel.add(label);
positionx += 220;
linecounter++;
if ( linecounter == 4 )
{
linecounter = 0;
positiony += 200;
positionx = 50;
}
}
frame.add(panel);
//ImageIcon icon = new ImageIcon("img\\icon.jpg");
//frame.setIconImage(icon.getImage());
frame.setResizable( false );
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(900,900);
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
frame.setLocation(dim.width/2-frame.getSize().width/2, dim.height/2-frame.getSize().height/2);
frame.setVisible(true);