【问题标题】:Display a set of images inside Netbeans JFrame在 Netbeans JFrame 中显示一组图像
【发布时间】:2014-10-26 12:03:34
【问题描述】:

我知道如何在单独的 JFrames 中显示图像。

public static void displayImage(BufferedImage img) {
    JFrame f = new JFrame();
    f.add(new JLabel(new ImageIcon(img)));
    f.pack();
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);

但我想要一种方法在单个 JFrame(或合适的元素)中显示所有图像,因此我可以使用两个按钮(“下一个”和“上一个”)在图像之间切换。

【问题讨论】:

  • 使用CardLayout ..或单个JLabel 来显示下一个/上一个.. 请参阅this answer 并向下滚动到许多图像了解更多想法。

标签: java swing jframe jpanel bufferedimage


【解决方案1】:

实际上你不需要多帧。你甚至不需要多个 jpanel。只需一个 jlable 就足够了。

您需要做的就是在按下按钮时更改 jlable 的图像。

1) 将您的图像放在一个目录中并命名。名称应该有模式

例子

 C:\Users\Madhawa.se\Desktop\images\i1.jpg 
 C:\Users\Madhawa.se\Desktop\images\i2.jpg
 C:\Users\Madhawa.se\Desktop\images\i3.jpg
 C:\Users\Madhawa.se\Desktop\images\i4.jpg
 C:\Users\Madhawa.se\Desktop\images\i5.jpg

2) 将 int 变量声明为全局变量

int i=0;

3) 单击下一步按钮时 i 加一,并在标签上添加适当的图像

i++;
ImageIcon imgThisImg = new ImageIcon("C:\\Users\\Madhawa.se\\Desktop\\images\\i"+i+".jpg");

jLabel1.setIcon(imgThisImg);

4) 单击上一个按钮时将 i 减一并将适当的图像添加到标签

i--;
ImageIcon imgThisImg = new ImageIcon("C:\\Users\\Madhawa.se\\Desktop\\images\\i"+i+".jpg");

jLabel1.setIcon(imgThisImg);

您还可以声明包含图像路径的字符串数组。如果您的图像名称想要是任意名称。然后您可以以相同的方式获取图像。

而且你应该有一个逻辑来正确循环图像。你应该限制 i 到图像数量。否则图像在 i 超出后不存在 i

输出>>

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多