如何将 Java GUI 中的 Image 换行?
How to bring the Image in Java GUI To a new line?
我正在尝试用图像制作一个简单的图形用户界面 window。
这是我的代码:
import java.awt.*;
import javax.swing.*;
public class Image extends JFrame
{
private ImageIcon [] image = new ImageIcon[10];
private JLabel [] label = new JLabel[10];
Image()
{
setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
for(int i=0; i<10; i++)
{
for(int j = 0; j<10;j++)
{
image[i] = new ImageIcon(getClass().getResource((i+1) +".jpg"));
label[i] = new JLabel (image[i]);
c.fill = GridBagConstraints.REMAINDER;
c.gridx = j;
c.gridy = i;
add(label[i]);
}
}
}
public static void main(String[] args)
{
Image i = new Image();
i.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
i.setVisible(true);
i.pack();
i.setTitle("My Title");
}
}
我想做的是在计数器退出内部循环后,它应该在 window 中换行。
但我在同一行中得到了所有内容。有什么建议吗?
您需要在添加标签时将约束条件作为参数传递:
add(label[i], c);
而不是
add(label[i]);
与问题没有直接关系,但您应该在 event dispatch thread 中创建 GUI;此外,仅在框架准备就绪后才在框架上调用 setVisible(true)
。
我正在尝试用图像制作一个简单的图形用户界面 window。 这是我的代码:
import java.awt.*;
import javax.swing.*;
public class Image extends JFrame
{
private ImageIcon [] image = new ImageIcon[10];
private JLabel [] label = new JLabel[10];
Image()
{
setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
for(int i=0; i<10; i++)
{
for(int j = 0; j<10;j++)
{
image[i] = new ImageIcon(getClass().getResource((i+1) +".jpg"));
label[i] = new JLabel (image[i]);
c.fill = GridBagConstraints.REMAINDER;
c.gridx = j;
c.gridy = i;
add(label[i]);
}
}
}
public static void main(String[] args)
{
Image i = new Image();
i.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
i.setVisible(true);
i.pack();
i.setTitle("My Title");
}
}
我想做的是在计数器退出内部循环后,它应该在 window 中换行。
但我在同一行中得到了所有内容。有什么建议吗?
您需要在添加标签时将约束条件作为参数传递:
add(label[i], c);
而不是
add(label[i]);
与问题没有直接关系,但您应该在 event dispatch thread 中创建 GUI;此外,仅在框架准备就绪后才在框架上调用 setVisible(true)
。