剛開始使用Java並且是初學者。我試圖創建一個照片查看器,可以搜索圖像的目錄並打開圖像,但我的程序不會顯示圖像。圖像將不會顯示在JPanel上
當我運行程序,它打開了,並表示這是我用來搜索我的目錄菜單欄,但即使我選擇的圖像也不會顯示。 TIA。
import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.io.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.filechooser.FileNameExtensionFilter;
import javax.imageio.ImageIO;
public class ICS
{
private JPanel gui;
private JFileChooser fileChooser;
FilenameFilter fileNameFilter;
private JMenuBar menuBar;
DefaultListModel model;
public ICS() {
gui = new JPanel(new GridLayout());
final JLabel imageView = new JLabel();
gui.add(imageView);
fileChooser = new JFileChooser();
String[] imageTypes = ImageIO.getReaderFileSuffixes();
menuBar = new JMenuBar();
JMenu menu = new JMenu("GET PHOTO HERE");
menuBar.add(menu);
JMenuItem browse = new JMenuItem("browse");
menu.add(browse);
browse.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae) {
int result = fileChooser.showOpenDialog(gui);
if (result==JFileChooser.APPROVE_OPTION) {
File eg = fileChooser.getSelectedFile();
}
}
});
}
public void loadImages(File directory) throws IOException {
File[] imageFiles = directory.listFiles(fileNameFilter);
BufferedImage[] images = new BufferedImage[imageFiles.length];
}
public Container getGui() {
return gui;
}
public JMenuBar getMenuBar() {
return menuBar;
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable(){
public void run() {
ICS imageList = new ICS();
JFrame f = new JFrame("Image Browser");
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
f.add(imageList.getGui());
f.setJMenuBar(imageList.getMenuBar());
f.setLocationByPlatform(true);
f.pack();
f.setSize(800,600);
f.setVisible(true);
}
});
}
}
是否有我需要添加的特定位置? – user2205330 2013-03-24 20:42:23
雖然乍一看這似乎是正確的,我就從只是說:「這是它是如何做」,並讓他學會自己思考,不會犯同樣的錯誤,至少讓公衆知道他做錯了解釋避免再次。 – SevenBits 2013-03-24 20:42:43
在檢索您選擇的文件之後立即進入動作偵聽器,就像我說的回答。 – SevenBits 2013-03-24 20:43:43