u010492885
antiitna
采纳率100%
2015-07-11 16:02

JFileChooser打开文件怎么变这样?

已采纳

开发记事本一开始怎么这样了?
(https://img-ask.csdn.net/upload/201507/11/1436630076_786879.png)

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

4条回答

  • tongyi55555 JonsonJiao 6年前

    问题的关键是你把选择文件对话框加到了你的JFrame中,这是不对的,注释掉就行了。改成下面的:

    // 默认方式
                jfc1.showOpenDialog(null);
        //          this.add(jfc1); //注释掉这一行即可。
    
    点赞 1 评论 复制链接分享
  • u010492885 antiitna 6年前

    package com.notepad;
    import java.io.*;
    import java.awt.*;
    import java.awt.event.*;

    import javax.swing.*;

    public class notepad extends JFrame implements ActionListener{
    /**
    * @记事本开发界面和功能
    * 组件:JMenubar--->JMenu---->JMenuItem
    * 组件:JFileChooser
    */
    //定义组件
    JTextArea jta=null;
    //菜单栏组件
    JMenuBar jmb=null;
    JMenu jm1=null;
    JMenu jm2=null;
    JMenuItem jmi1=null;
    JMenuItem jmi2=null;
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    notepad nt=new notepad();
    }
    //构造函数中添加组件
    public notepad(){
    //初始化组件
    jta=new JTextArea();
    jmb=new JMenuBar();
    jm1=new JMenu("文件");
    jmi1=new JMenuItem("打开");
    jmi2=new JMenuItem("保存");

        //监听
         jmi1.addActionListener(this);
        jmi1.setActionCommand("open");
        //助记符
        jm1.setMnemonic('F');
        //添加组件
            jmb.add(jm1);
            jm1.add(jmi1);
            jm1.add(jmi2);
            this.add(jta);
    
       //注意添加按钮组件的方式
            this.setJMenuBar(jmb);
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            this.setSize(4000,3000);
            this.setVisible(true);
    }
    public void actionPerformed(ActionEvent arg0) {
        // TODO Auto-generated method stub
        if(arg0.getActionCommand().equals("open")){
            System.out.println("aaa");
            //文件选择组件
            JFileChooser jfc1=new JFileChooser();
            //选择对话
            jfc1.setDialogTitle("请选择文件...");
            jfc1.setVisible(true);
            //默认方式
            jfc1.showOpenDialog(null);
            this.add(jfc1); 
            //获取文件路径
            String filename=jfc1.getSelectedFile().getAbsolutePath();
            System.out.println(filename);
            //打开文件显示到文本中
            FileReader fr=null;
            BufferedReader br=null;
            try {
                fr=new FileReader(filename);
                br=new BufferedReader(fr);
                String s="";
                String allCon="";
                while((s=br.readLine())!=null){
                    allCon+=s+"\r\n";
                }
                jta.setText(allCon);
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                try {
                    br.close();
                    fr.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
    
            }
            }
    }
    

    }

    
    

    这是代码,帮帮忙。

    点赞 评论 复制链接分享
  • u010492885 antiitna 6年前

    package com.notepad;
    import java.io.*;
    import java.awt.*;
    import java.awt.event.*;

    import javax.swing.*;

    public class notepad extends JFrame implements ActionListener{
    /**
    * @记事本开发界面和功能
    * 组件:JMenubar--->JMenu---->JMenuItem
    * 组件:JFileChooser
    */
    //定义组件
    JTextArea jta=null;
    //菜单栏组件
    JMenuBar jmb=null;
    JMenu jm1=null;
    JMenu jm2=null;
    JMenuItem jmi1=null;
    JMenuItem jmi2=null;
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    notepad nt=new notepad();
    }
    //构造函数中添加组件
    public notepad(){
    //初始化组件
    jta=new JTextArea();
    jmb=new JMenuBar();
    jm1=new JMenu("文件");
    jmi1=new JMenuItem("打开");
    jmi2=new JMenuItem("保存");

        //监听
         jmi1.addActionListener(this);
        jmi1.setActionCommand("open");
        //助记符
        jm1.setMnemonic('F');
        //添加组件
            jmb.add(jm1);
            jm1.add(jmi1);
            jm1.add(jmi2);
            this.add(jta);
    
       //注意添加按钮组件的方式
            this.setJMenuBar(jmb);
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            this.setSize(4000,3000);
            this.setVisible(true);
    }
    public void actionPerformed(ActionEvent arg0) {
        // TODO Auto-generated method stub
        if(arg0.getActionCommand().equals("open")){
            System.out.println("aaa");
            //文件选择组件
            JFileChooser jfc1=new JFileChooser();
            //选择对话
            jfc1.setDialogTitle("请选择文件...");
            jfc1.setVisible(true);
            //默认方式
            jfc1.showOpenDialog(null);
            this.add(jfc1); 
            //获取文件路径
            String filename=jfc1.getSelectedFile().getAbsolutePath();
            System.out.println(filename);
            //打开文件显示到文本中
            FileReader fr=null;
            BufferedReader br=null;
            try {
                fr=new FileReader(filename);
                br=new BufferedReader(fr);
                String s="";
                String allCon="";
                while((s=br.readLine())!=null){
                    allCon+=s+"\r\n";
                }
                jta.setText(allCon);
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                try {
                    br.close();
                    fr.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
    
            }
            }
    }
    

    }

    
    

    这是代码,帮帮忙。

    点赞 评论 复制链接分享
  • caozhy 回答这么多问题就耍赖把我的积分一笔勾销了 6年前

    JFileChooser本身的bug,把你的程序拿到windows 7上运行看看。
    另外看看你的计算机是不是感染了360等病毒,它们会破坏和干扰系统的运行。

    点赞 评论 复制链接分享