如题...
本人JAVA初学者, 希望高人指点, 给出一点参考代码.
我看过java sdk document.
里面的那个demo也试过, 似乎不行.
我用的netbeans5.5的ide, 不能修改生成的初始化代码.
只能在外部初始化, 所以不知如何下手.

解决方案 »

  1.   

    例如:
    我自己写的一个FileFilter扩展了FileFilter,方便自己用, 这里供你参考:public class MyFileFilter extends FileFilter{

    private String extension;
    private String description;

    public MyFileFilter(String ext) {
    this(ext, null);
    }

    public MyFileFilter(String ext, String descr) {
    extension = ext.toLowerCase();
    description = (descr == null ? ext + "files" : descr); }

    public boolean accept(File f) {
    String name = f.getName().toLowerCase();

    if (f.isDirectory() || (name.endsWith(extension))) {
    return true;
    } return false;
    }

    /**
     * @return  the description
     * @uml.property  name="description"
     */
    public String getDescription() {
    return description;
    }
    }结合JFileChooser一起使用:JFileChooser fc = new JFileChooser();
    MyFileFilter mff = new MyFileFilter("xml", "XML File (*.xml)");
    fc.addChoosableFileFilter(mff);
    fc.setAcceptAllFileFilterUsed(false);
    int returnVal = fc.showOpenDialog(parent);
    if(returnVal == JFileChooser.APPROVE_OPTION) {
        File file = fc.getSelectedFile();
    } file 就是选择的文件
      

  2.   

    配合JFileChooser使用
    JFileChooser jfc = new JFileChooser(FileSystemView.getFileSystemView());
    FileFilter fileFilter = new javax.swing.filechooser.FileFilter() {
                public boolean accept(File file) { //可接受的文件类型
                    String  name = file.getName().toLowerCase();
                    return  name.endsWith(".mp3")||
                             name.endsWith(".MP3")||
                             name.endsWith(".wav")||
                             name.endsWith(".WAV")||
                             file.isDirectory();
                }
                public String getDescription() { //文件描述
                    return "mp3,wav,midi 音乐文件";
                }
            };
    File getFile(){
         jfc.setFileFilter(fileFilter);
         int result = fileChooser.showOpenDialog(new Frame());
            if(result == JFileChooser.APPROVE_OPTION){
                return fileChooser.getSelectedFile();
            }
            else{
                return null;
            }
    }
      

  3.   

    谢谢2位的帮助
    继续请教,如何将选择的图片,绘制到Jframe上?
    我自己做了一些,尝试,参考书上和网上的一些例子,但是都提示找不到方法或元件。
    我都怀疑是不是有这个getImage()方法。下面是用netbeans 5.5.1 IDE生成的代码,小部分是自己写的。
    /*
     * frmMain.java
     *
     * Created on June 18, 2007, 6:12 PM
     *//**
     *
     * @author  BillyChow
     */
    import java.awt.*;
    public class frmMain extends javax.swing.JFrame {
        
        /** Creates new form frmMain */
        public frmMain() {
            initComponents();
        }
        
        /** This method is called from within the constructor to
         * initialize the form.
         * WARNING: Do NOT modify this code. The content of this method is
         * always regenerated by the Form Editor.
         */
        // <editor-fold defaultstate="collapsed" desc=" Generated Code ">                          
        private void initComponents() {
            frmFile_Open = new javax.swing.JFrame();
            jFileChooser1 = new javax.swing.JFileChooser();
            dlgFile_Open = new javax.swing.JDialog();
            jMenuBar1 = new javax.swing.JMenuBar();
            mnuFile = new javax.swing.JMenu();
            mnuFile_Open = new javax.swing.JMenuItem();
            mnuFile_Exit = new javax.swing.JMenuItem();        jFileChooser1.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    jFileChooser1ActionPerformed(evt);
                }
            });        javax.swing.GroupLayout frmFile_OpenLayout = new javax.swing.GroupLayout(frmFile_Open.getContentPane());
            frmFile_Open.getContentPane().setLayout(frmFile_OpenLayout);
            frmFile_OpenLayout.setHorizontalGroup(
                frmFile_OpenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, frmFile_OpenLayout.createSequentialGroup()
                    .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jFileChooser1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addContainerGap())
            );
            frmFile_OpenLayout.setVerticalGroup(
                frmFile_OpenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(frmFile_OpenLayout.createSequentialGroup()
                    .addContainerGap()
                    .addComponent(jFileChooser1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
            );
            javax.swing.GroupLayout dlgFile_OpenLayout = new javax.swing.GroupLayout(dlgFile_Open.getContentPane());
            dlgFile_Open.getContentPane().setLayout(dlgFile_OpenLayout);
            dlgFile_OpenLayout.setHorizontalGroup(
                dlgFile_OpenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGap(0, 400, Short.MAX_VALUE)
            );
            dlgFile_OpenLayout.setVerticalGroup(
                dlgFile_OpenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGap(0, 300, Short.MAX_VALUE)
            );        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
            setTitle("PictureViewer");
            mnuFile.setText("File");
            mnuFile_Open.setText("Open");
            mnuFile_Open.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    mnuFile_OpenActionPerformed(evt);
                }
            });        mnuFile.add(mnuFile_Open);        mnuFile_Exit.setText("Exit");
            mnuFile.add(mnuFile_Exit);        jMenuBar1.add(mnuFile);        setJMenuBar(jMenuBar1);        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
            getContentPane().setLayout(layout);
            layout.setHorizontalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGap(0, 400, Short.MAX_VALUE)
            );
            layout.setVerticalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGap(0, 279, Short.MAX_VALUE)
            );
            pack();
        }// </editor-fold>                            private void jFileChooser1ActionPerformed(java.awt.event.ActionEvent evt) {                                              
    // TODO add your handling code here:    }                                                 private void mnuFile_OpenActionPerformed(java.awt.event.ActionEvent evt) {                                             
            int returnVal = jFileChooser1.showOpenDialog(dlgFile_Open);
            if(returnVal == jFileChooser1.APPROVE_OPTION){
                System.out.println(jFileChooser1.getSelectedFile().getName());
            }
            Image pic;
            Graphics g;
           // Image = getImage("xx.jpg");
        }                                            
        
        /**
         * @param args the command line arguments
         */
        public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new frmMain().setVisible(true);
                }
            });
        }
        
        // Variables declaration - do not modify                     
        private javax.swing.JDialog dlgFile_Open;
        private javax.swing.JFrame frmFile_Open;
        private javax.swing.JFileChooser jFileChooser1;
        private javax.swing.JMenuBar jMenuBar1;
        private javax.swing.JMenu mnuFile;
        private javax.swing.JMenuItem mnuFile_Exit;
        private javax.swing.JMenuItem mnuFile_Open;
        // End of variables declaration                   
        
    }