【发布时间】:2015-06-13 09:22:45
【问题描述】:
我正在尝试制作一个小程序,当用户单击下一个按钮时在 JLabel 上显示图片。问题是当我单击下一个按钮时它什么都不显示。但是如果我调整框架大小,它会显示目录中的所有图片。而不是一次一张图片。 请原谅我的英语。 这是我的代码。
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.imageio.ImageIO;
import java.io.*;
import java.awt.image.BufferedImage;
class test {
public static void main(String args[]) {
frame f = new frame();
f.gui();
f.actions();
}
}
class frame {
BufferedImage file;
File img;
ImageIcon icon;
JLabel image;
JFrame frame;
JPanel panel;
String[] path = { "juice.jpg", "gal.jpg", "truck.jpg", "Drive.jpg" };
JButton next = new JButton("NEXT");
JButton pre = new JButton("PREVOIUS");
JTextField field = new JTextField(10);
static int num = 0;
public void gui() {
frame = new JFrame("pic gallery");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
FlowLayout flow = new FlowLayout();
frame.setLayout(flow);
panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.LINE_AXIS));
panel.add(next);
panel.add(pre);
panel.add(field);
JLabel piclabel = new JLabel();
frame.getContentPane().add(panel);
}
void actions() {
next.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
img = new File(path[num]);
System.out.println(num);
try {
file = ImageIO.read(img);
icon = new ImageIcon(file);
image = new JLabel("", icon, JLabel.CENTER);
image.setVisible(true);
frame.getContentPane().add(image);
} catch (IOException g) {
}
if (num < path.length - 1) {
num++;
field.setText(num + "");
} else {
num = 0;
}
}
});
}
}
【问题讨论】:
-
交叉发布:coderanch.com/t/651201/GUI/java/Image-doesnt-shows-propely-java。放弃交叉发帖!!!花时间回答一个问题却发现已经给出了完全相同的答案,而您却懒得回答说已经找到答案,这很烦人。
-
是的,我在那里发帖,但我没有得到答案。即使现在没有人回复了。那么在另一个论坛提问有什么问题。
-
but i didn't get answer- 是的,你做到了。我回答了。whats wrong in ask questions in another forum- 你有没有看我的评论???你没有费心在其他论坛上回复你得到了答案,所以当我本可以花时间帮助其他没有问题答案的人时,我浪费了时间来帮助你。当您在两个论坛上发帖时,这就是问题所在。你永远不会费心回复其他论坛说你有答案。 -
是的,我刚刚检查过你回复了。谢谢
-
不要在这里感谢我。在那里谢谢我。回复说答案确实解决了问题,因此阅读该问题的其他人可以从答案中学习。或者发表评论说您在其他论坛中找到了解决方案?可能其他人可能会阅读该问题并认为您仍在寻找答案并浪费时间试图提供另一个答案。体谅那些自愿花时间回答问题的人。当您提出问题时,请在任何地方提出问题!!!
标签: java swing jlabel imageicon