icewing

之前汇总的Java二级知识点 - 精华版
这些是从5篇试卷总结出来的。最后一篇选择题没有什么总结的就只弄了程序填空题。考试前看一看应该很有帮助的!
扫描右侧二维码阅读全文
06
2019/04

之前汇总的Java二级知识点 - 精华版

这些是从5篇试卷总结出来的。最后一篇选择题没有什么总结的就只弄了程序填空题。考试前看一看应该很有帮助的!

地址

幕布:https://mubu.com/doc/gOm2fePDD0

思维导图

思维导图

下载

PDF:https://box.zjuqsc.com/-14513007

Dodd

复习题
  • 试卷一总结
    • 选择题
      • 在数据流图中,用标有名字的箭头表示数据流。在程序流程图中,用标有名字的箭头表示控制流。
      • 结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句
      • 可行性分析阶段产生可行性分析报告、需求分析阶段产生需求、概要设计阶段产生集成测试计划
      • 有穷性是指算法程序的运行时间是有限的
      • 对长度为n的线性表排序,最坏的情况下,堆排序算法的比较次数是O(nlog2n),其他都是n(n-1)/2
      • 栈按 先进后出 组织数据
      • E-R图转化为关系模型属于逻辑设计阶段
      • 类名、接口名每个单词首字母大写。变量、方法名遵循驼峰命名法(第一个单词字母小写,后面每个单词字母大写) 常量名所有字母全部大写。
      • 字节码与各个操作系统和硬件分开
      • 不能将boolean类型数值转化为其他基本数据类型
      • a对应的十进制数是97
      • 构造方法中:方法名必须与类名一致,没有返回值,也不能用void修饰,构造方法为有参构造和无参构造,两个方法属于方法的重载。构造方法在创建对象的时候自动调用有参构造方法和无参构造方法。
      • 含有抽象方法的类一定要是抽象类
      • arithmeticexception 除数不能为0异常。Arraysindexoutofboundsexception 下标越界
      • 异常的父类为exception类
      • append()属于stringbuffer和stringbuilder中的方法
      • 所有字节输入输出流类都继承自inoutstream和outputstream类
      • getForeground()获取构件前景色、getBackground()获取构件后景色
      • Swing构件以 J 开头
      • notify()唤醒在此对象监视器上等待的单个线程、当它被一个notify()方法唤醒时,等待池中的线程就被放到了锁池中。该线程将等待从锁池中获得机锁然后回到wait()前的中断现场。sleep()是线程进入停滞状态,所以sleep()线程在指定时间内肯定不会执行。yield()只是使当前线程重新回到可执行状态,所以执行yield()的线程有可能在进入到可执行状态又被执行。isalive()功能是判断当前的线程是否出于活动状态。
      • 多个线程调用一个对象的多个方法,这些方法都被synchronized修饰。
      • applet获取参数时通过html文件中采用<param> 标记定义参数。
    • 基本操作
      • 程序的功能是打印一个序列的前10项,该序列的第一项和第二项都是1.以后的每一项都是前面的两项之和。
      • 完成流程,使程序输出结果如下
      • 1 1 2 3 5 8 13 21 34 55
      • 代码填空:
        public class Java_1 {
        public static void main(String[] args) {
        //*********Found******** new int[10]
        int []f= new int[10];
        f[0]=f[1]=1;
        //*********Found******** int i=2
        for (int i=2;i<10;i++)
        f[i]=f[i-1]+f[i-2];
        //*********Found******** length
        for (int i=0;i<f.length;i++)
        //*********Found******** f[i]
        System.out.print(f[i] +" ");
        }

        }
      • 解析
    • 综合应用
      • 程序的功能是:输入一个十进制整数,将其二进制形式显示出来。
      • 代码填空:
        //打印无符号整数位
        import java.awt.*;
        import java.awt.event.*;
        import javax.swing.*;

        public class Java_3 extends JFrame {
        public Java_3(){
        super( "打印无符号整数位" );
        Container c = getContentPane();
        c.setLayout( new FlowLayout() );
        c.add( new JLabel( "请输入整数: " ) );
        final JTextField output = new JTextField( 33 );
        JTextField input = new JTextField( 10 );
        input.addActionListener(
        new ActionListener() {
        //*********Found******** actionPerformed
        public void actionPerformed( ActionEvent e ){
        int val = Integer.parseInt(
        e.getActionCommand() );
        //*********Found******** output
        output.setText( getBits( val ) );
        }
        }
        );
        c.add( input );
        c.add( new JLabel( "该数的二进制位表示是" ) );
        output.setEditable( false );
        //*********Found******** output
        c.add( output );
        setSize( 720, 70 );
        setVisible(true);
        }

        private String getBits( int value ){
        int displayMask = 1 << 31;
        StringBuffer buf = new StringBuffer( 35 );
        for ( int c = 1; c <= 32; c++ ) {
        buf.append(
        ( value & displayMask ) == 0 ? '0' : '1' );
        value <<= 1;
        if ( c % 8 == 0 )
        buf.append( ' ' );
        }
        return buf.toString();
        }

        public static void main( String args[] ){
        Java_3 app = new Java_3();
        app.addWindowListener(
        new WindowAdapter() {
        //*********Found******** WindowEvent
        public void windowClosing( WindowEvent e ){
        System.exit( 0 );
        }
        }
        );
        }
        }
      • 解析
  • 试卷二总结
    • 选择题
      • 循环队列仍是线性结构
      • 当有序线性表为顺序存储时才能使用二分法查找。长度为n的有序线性表。最坏情况下二分法比较log2n次,顺序查找需要比较n次
      • 链式结构存储既可以针对线性结构也可以针对非线性结构。链式存储结构中每个结点都由数据域与指针域两部分组成。增加乐存储空间。
      • 顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的。
      • 在需求分析阶段可以使用的工具有数据流图DFD图、数据字典DD、判定树与判定表
      • 对象的特点:标识唯一性、分类性、多态性、封装性、模块独立性
      • java中一个文件只能允许一个public类
      • java特点:多线程、跨平台、动态性、单继承
        • 只有接口可以多继承
      • 无限循环:for(;;){ }
      • 不用static修饰的变量叫做实例变量,不用static修饰只能通过对象的引用去操作
      • ArrayIndexOutOfBoundsException下标越界异常
      • 处理异常的三种方式:捕捉并处理try catch,直接抛出不处理throw,自定义异常
      • InputStream类是所有输入流的抽象类,过滤器输入流的基类为FilterInputStrean类
      • public FileOutputSream(String name),创建一个向具有指定名称的文件中写入数据的输出文件流
      • java.io包包括:处理字节流的抽象类inputstream和outputstream,处理字符流的抽象类reader和writer。
        • 其中,所有字节输入流都从inputstream类继承,所有字节输出流都从outputstream类继承
        • 所有字符输入流都从reader类继承,所有字符输出流都从writer类继承
      • java.awt.event包中定义的适配器类包括
        • componentadapter,构件适配器
        • containeradapter,容器适配器
        • focusadapter,焦点适配器
        • mouseadapter,鼠标适配器
        • keyadapter,键盘适配器
        • mousemotionadapter,鼠标运动适配器
        • windowadapter,窗口适配器
      • 如果发生下面几种情况,运行状态的线程进入阻塞状态
        • 线程调用了sleep()方法、join()方法
        • 线程调用了wait()方法
        • 线程中使用synchronized来请求对象的锁未获得
        • 线程有输入、输出操作
          • 结束时进入运行状态
      • 在java中,使用synchronized关键字标识临界区,由synchronized语句设置对象的一个锁,称为对象锁。
        • 它是一种独占的排它锁,即同一时刻最多只能有一个线程获取该锁。
    • 基本操作
      • 完善并调试程序
        import javax.swing.JOptionPane;
        public class Java_1 {
        public static void main( String args[] ){
        //变量初始化
        int passes = 0, //考生通过的数目
        failures = 0, //考生不通过的数目
        student = 1, //学生计数器
        result; //一门考生结果
        String input, //用户输入的值
        output; //输出字符串
        //处理10名学生,用计数器控制循环
        while ( student <= 10 ) {
        input = JOptionPane.showInputDialog(
        "输入结果(1=通过,2=不通过)" );
        //*********Found********** input
        result = Integer.parseInt( input );
        if ( result == 1 )
        passes = passes + 1;
        else
        failures = failures + 1;
        student = student + 1;
        }
        //结果处理
        output = "通过: " + passes +
        "\n不通过: " + failures;
        if( passes > 8 )
        output = output + "\n提高学费";
        //*********Found********** showMessageDialog
        JOptionPane.showMessageDialog( null, output,
        "对考试结果的分析示例",
        JOptionPane.INFORMATION_MESSAGE );
        //*********Found********** exit
        System.exit( 0 );
        }
        }
      • 解析
    • 简单应用
      • 对于给定的3位学生的java成绩进行降序排序。
        import java.util.*;
        public class Java_2
        {
        public static void main(String[] args)
        {
        Student[] java = new Student[3];
        java[0] = new Student("李明", 80);
        java[1] = new Student("赵冬", 75);
        java[2] = new Student("王晓", 98);
        //*********Found********** java
        Arrays.sort(java);
        System.out.println("Java 成绩降序排序的结果是:");
        for (int i = 0; i < java.length; i++)
        {
        Student e = java[i];
        //*********Found********** getName()
        System.out.println("name=" + e.getName()
        + ",fenshu=" + e.getFenshu());
        }
        }
        }
        //*********Found********** implements
        class Student implements Comparable
        {
        public Student(String n, double f)
        {
        name = n;
        fenshu = f;
        }
        public String getName()
        {
        return name;
        }
        public double getFenshu()
        {
        return fenshu;
        }
        public int compareTo(Object otherObject)
        {
        Student other = (Student)otherObject;
        if (fenshu < other.fenshu) return 1;
        if (fenshu > other.fenshu) return -1;
        return 0;
        }
        private String name;
        //*********Found********** double
        private double fenshu;
        }
      • 解析
    • 综合应用
      • 在c盘根目录下寻找一个不存在的文本文件abc.txt。
        import java.io.*;
        public class Java_3
        {
        public static void main(String[] args)
        {
        Java_3 exceptionExample = new Java_3();
        //*********Found********** try
        try
        {
        FileInputStream fi = new FileInputStream("C:" + "\\" + "abc.txt");
        }
        //*********Found********** catch
        catch(FileNotFoundException ex)
        {
        //*********Found********** ex
        System.out.println(ex.getMessage()+
        "请确认文件路径及文件名是否正确!");
        }
        }
        }
      • 解析
  • 试卷三总结
    • 选择题
      • 栈是先进后出的线性表,队列是先进先出的线性表。
        • 循环队列是线性结构的线性表
      • 栈支持子程序调用。栈是一种只能在一端进行插入或删除的线性表。
      • 在任意一颗二叉树中,度为0的叶子节点总是比度为2的节点多一个
      • 堆排序最坏情况下须比较:nlog2n
      • J2ME是为嵌入式和移动设备提供的java平台
      • java语言使用的是16位Unicode字符集。
      • java中具有精度的只有浮点数。
        • 单精度为float类型
        • 双精度为double类型
      • 构造方法的定义
        • 方法名必须与类型一致,没有返回值且不用void表示
        • applet运行时有游览器调用init()方法,完成后调用start()方法成为激活状态。当applet被覆盖时,可用stop()方法停止线程。关闭游览器调用destroy()方法。彻底终止applet,从内存中卸载并释放applet的所有资源。
    • 基本操作
      • 完善程序
        public class Java_1 extends TT
        {
        //*********Found********** main String
        public static void main(String args[])
        {
        Java_1 t = new Java_1("小龙");
        }
        public Java_1(String s)
        {
        super(s);
        System.out.println("您好吗?");
        }
        public Java_1()
        {
        this("我是文朋");
        }
        }
        class TT
        {
        public TT()
        {
        System.out.println("多高兴啊!");
        }
        public TT(String s)
        {
        //*********Found********** this();
        this();
        System.out.println("我是"+s);
        }
        }
    • 简单应用
      • 方法triple()传入的参数变成原来的3倍。
        public class Java_2
        {
        public static void main(String[] args)
        {
        System.out.println("观察triple方法参数 double 10.0 的改变:");
        //*********Found********** double
        double canshu = 10;
        //*********Found********** canshu
        System.out.println("参数*3前,参数值为 " + canshu);
        triple(canshu);
        System.out.println("在triple方法外,参数值仍为 " + canshu);
        System.out.println("思考:方法能否改变参数值?");
        }
        //*********Found********** triple
        public static void triple(double x)
        {
        //*********Found********** x = 30
        x = 30;
        //*********Found********** x
        System.out.println("在triple方法内,参数 10 变为 " + x);
        }
        }
    • 综合应用
      • applet窗口显示
        import java.awt.*;
        import javax.swing.*;
        //*********Found********** JApplet
        public class Java_3 extends JApplet
        {
        //*********Found********** init
        public void init ()
        {
        Container contentPane = getContentPane();
        JLabel label = new JLabel("One World One Dream",SwingConstants.CENTER);
        label.setFont(new Font("Arial", Font.BOLD, DEFAULT_SIZE));
        //*********Found********** contentPane
        contentPane.add(label);
        }
        private static final int DEFAULT_SIZE = 24;
        }
  • 试卷四总结
    • 选择题
      • 树是简单的非线性结构
      • 算法的空间复杂度是指在执行过程中所需要的计算机存储空间
      • 结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句
      • N-S图提出了用方块图来代替传统的程序流程图。
      • PAD图是问题分析图
      • E-R图是数据库中用于表示E-R模型的图示工具
      • java.lang 包是编译器自动导入的
      • Swing构件中JButton是按钮构件,JLabel为标签构件,JFrame为顶层窗体容器构件。JPanel为中间容器面板
      • 线程启动方法只有start()
    • 基本操作
      • 创建两个线程,每个线程每次会输出一个累计增加的整数和线程名。
        public class Java_1
        {
        //*********Found********** String
        public static void main (String args[])
        {
        new SimpleThread("第1").start();
        new SimpleThread("第2").start();
        }
        }
        //*********Found********** Thread
        class SimpleThread extends Thread
        {
        public SimpleThread(String str)
        {
        super(str);
        }
        public void run()
        {
        for (int i = 0; i < 5; i++)
        {
        //*********Found********** getName
        System.out.println(i + " " + getName());
        try
        {
        sleep((int)(2 * 100));
        }
        catch (InterruptedException e) { }
        }
        System.out.println("运行! " + getName());
        }
        }
    • 简单应用
      • 程序中定义了抽象类Person和其两个具体子类Worker和Student。
        import java.text.*;
        public class Java_2
        {
        public static void main(String[] args)
        {
        Person[] people = new Person[2];
        people[0] = new Worker("老张", 30000);
        people[1] = new Student("小王", "计算机科学");
        for (int i = 0; i < people.length; i++)
        {
        Person p = people[i];
        //*********Found********** p.getName
        System.out.println(p.getName() + ", " + p.getDescription());
        }
        }
        }
        //*********Found********** abstract
        abstract class Person
        {
        public Person(String n)
        {
        name = n;
        }
        //*********Found********** abstract
        public abstract String getDescription();
        public String getName()
        {
        return name;
        }
        private String name;
        }
        //*********Found********** extends
        class Worker extends Person
        {
        public Worker(String n, double s)
        {
        super(n);
        salary = s;
        }
        public String getDescription()
        {
        NumberFormat formatter = NumberFormat.getCurrencyInstance();
        return "工人,年薪是 " + formatter.format(salary) + "。";
        }
        private double salary;
        }
        //*********Found********** extends
        class Student extends Person
        {
        public Student(String n, String m)
        {
        super(n);
        major = m;
        }
        public String getDescription()
        {
        return "学生,专业是 " + major + "。";
        }
        private String major;
        }
    • 综合应用

      • import java.awt.*;
        import java.awt.event.*;
        import java.io.*;
        import javax.swing.*;
        public class Java_3
        {
        public static void main(String[] args)
        {
        JFrame frame = new ImageViewerFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //*********Found********** trues
        frame.setVisible(true);
        }
        }
        class ImageViewerFrame extends JFrame
        {
        private JLabel label;
        private JLabel labelT;
        private JFileChooser chooser;
        private JComboBox faceCombo;
        private static final int DEFAULT_SIZE = 24;
        public static final int DEFAULT_WIDTH = 570;
        public static final int DEFAULT_HEIGHT = 400;
        public ImageViewerFrame()
        {
        setTitle("ImageViewer");
        setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
        label = new JLabel();
        Container contentPane = getContentPane();
        contentPane.add(label,BorderLayout.CENTER);
        chooser = new JFileChooser();
        chooser.setCurrentDirectory(new File("."));
        JMenuBar menuBar = new JMenuBar();
        setJMenuBar(menuBar);
        //*********Found********** File
        JMenu menu = new JMenu("File");
        menuBar.add(menu);
        JMenuItem openItem = new JMenuItem("Open");
        //*********Found********** menu
        menu.add(openItem);
        openItem.addActionListener(new ActionListener()
        {
        public void actionPerformed(ActionEvent evt)
        {
        int r = chooser.showOpenDialog(null);
        if(r == JFileChooser.APPROVE_OPTION)
        {
        //*********Found********** chooser
        String name = chooser.getSelectedFile().getPath();
        label.setIcon(new ImageIcon(name));
        }
        }
        });
        labelT = new JLabel("红军不怕远征难");
        labelT.setFont(new Font("隶书", Font.PLAIN, DEFAULT_SIZE));
        contentPane.add(labelT, BorderLayout.NORTH );
        faceCombo = new JComboBox();
        faceCombo.setEditable(true);
        faceCombo.addItem("隶书");
        faceCombo.addItem("华文新魏");
        faceCombo.addItem("华文行楷");
        faceCombo.addItem("华文隶书");
        faceCombo.addActionListener(new
        ActionListener()
        {
        public void actionPerformed(ActionEvent event)
        {
        //*********Found********** faceCombo
        labelT.setFont(new Font((String)faceCombo.getSelectedItem(),
        Font.PLAIN, DEFAULT_SIZE));
        }
        });
        JPanel comboPanel = new JPanel();
        comboPanel.add(faceCombo);
        contentPane.add(comboPanel, BorderLayout.SOUTH);
        }
        }​​
  • 试卷五总结
    • 选择题
      • 线性链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间
      • 数据库系统的三级模式是概念模式、外模式、内模式
        • 外模式也称子模式、用户模式,
          • 它是用户的数据视图,给出了每个用户的局部数据描述
        • 内模式又称物理模式,
          • 他给出了数据库物理存储结构与物理存取方法
        • 一个文件包含的public类最多1个
        • javap是java的反汇编命令
        • java中运算的优先级为:算术运算符》关系运算符》逻辑运算符》赋值运算符
        • Object类是所有类的父类
        • Reader/Writer所处理的流是字符流,Inputstream/Outputstream处理的是字节流
        • 创建线程有两种方法
          • 实现java.lang.Runnable接口
          • 继承Thread类并重写run()方法
    • 基本操作
      • 计算球的体积
        //*********Found********** javax
        import javax.swing.*;
        public class Java_1
        {
        //*********Found********** static
        public static void main(String[] args)
        {
        System.out.println();
        System.out.println("����һ��ָ����뾶����������ij���");
        String input=JOptionPane.showInputDialog("��������뾶��");
        //*********Found********** input
        double r=Double.parseDouble(input);
        System.out.println("����İ뾶��" + r + "ʱ������������ " + (Math.PI*r*r*r*4/3));
        System.exit(0);
        }
        }
    • 简单应用
      • 线程问题
        public class Java_2
        {
        public static void main(String[] args)
        {
        Thread t = new SimpleThread("Testing_Thread");
        //*********Found********** t.start()
        t.start() ;
        }
        }
        //*********Found********** Thread
        class SimpleThread extends Thread
        {
        public SimpleThread(String str)
        {
        //*********Found********** setName(str)
        setName(str) ;
        }
        //*********Found********** run
        public void run()
        {
        System.out.println("Running the " + getName() + ":");
        for (int i = 0; i < 5; i++)
        {
        System.out.println("---" + i + "---" + getName());
        try
        {
        sleep((int)(2 * 100));
        }
        //*********Found********** catch
        catch(InterruptedException e) { }
        }
        }
        }
    • 综合应用
      • JFrame窗口问题
        import java.awt.event.*;
        import java.applet.Applet;
        import java.awt.*;
        import java.awt.font.*;
        import java.awt.geom.*;
        import javax.swing.*;
        public class Java_3
        {
        public static void main(String[] args)
        {
        FontFrame frame = new FontFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
        }
        }
        //*********Found********** JFrame
        class FontFrame extends JFrame
        {
        public FontFrame()
        {
        setTitle("北京 2008");
        setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
        FontPanel panel = new FontPanel();
        Container contentPane = getContentPane();
        //*********Found********** panel
        contentPane.add(panel);
        }
        public static final int DEFAULT_WIDTH = 400;
        public static final int DEFAULT_HEIGHT = 250;
        }
        class FontPanel extends JPanel
        {
        public FontPanel()
        {
        JButton yellowButton = new JButton("Yellow");
        JButton blueButton = new JButton("Blue");
        JButton redButton = new JButton("Green");
        add(yellowButton);
        add(blueButton);
        add(redButton);
        ColorAction yellowAction = new ColorAction(Color.YELLOW);
        ColorAction blueAction = new ColorAction(Color.BLUE);
        ColorAction greenAction = new ColorAction(Color.GREEN);
        yellowButton.addActionListener(yellowAction);
        blueButton.addActionListener(blueAction);
        redButton.addActionListener(greenAction);
        }
        public void paintComponent(Graphics g)
        {
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D)g;
        String message = "同一个世界,同一个梦想!";
        Font f = new Font("隶书", Font.BOLD, 27);
        g2.setFont(f);
        FontRenderContext context = g2.getFontRenderContext();
        Rectangle2D bounds = f.getStringBounds(message, context);
        double x = (getWidth() - bounds.getWidth()) / 2;
        double y = (getHeight() - bounds.getHeight()) / 2;
        double ascent = -bounds.getY();
        double baseY = y + ascent;
        g2.setPaint(Color.RED);
        g2.drawString (message, (int)x, (int)(baseY));
        }
        //*********Found********** implements
        private class ColorAction implements ActionListener
        {
        public ColorAction(Color c)
        {
        BackgroundColor = c;
        }
        //*********Found********** actionPerformed
        public void actionPerformed (ActionEvent event)
        {
        setBackground(BackgroundColor);
        }
        private Color BackgroundColor;
        }
        }
  • 程序填空题强化练习
    • 1.
    • 代码
      // 阅读下列代码:
      public class Java_1
      {
      //*********Found********** main String
      public static void main(String []args)
      {
      String s1=new String("你正在考试");
      String s2=new String("你正在考试");
      System.out.println(s1==s2);
      //*********Found********** s1.equals
      System.out.println(s1.equals(s2));
      }
      }​​
    • 解析
    • 2.
    • 代码
      import java.io.File;
      import java.io.FileReader;
      import java.io.FileWriter;
      import java.io.IOException;
      public class Java_2{
      public static void main(String args[]) {
      args=new String[]{"a.txt","b.txt"};
      if(args.length<2)
      {
      System.out.println("ERROR: need parameters.");
      System.out.println("\n -usage: java <classname> <file1> <file2>");
      System.exit(0);
      }
      File f1=new File(args[0]);
      //*********Found********** args[1]
      File f2=new File(args[1]);
      try {
      //*********Found********** f2
      FileReader fr=new FileReader(f2);
      FileWriter fw=new FileWriter(f1,true);
      int b;
      //*********Found********** b
      while(( b=fr.read() ) != -1 ) fw.write(b);
      fr.close();
      fw.close();
      }
      catch(IOException e)
      {
      e.printStackTrace();
      }
      System.out.println("has done!");
      //*********Found**********
      if(f2.delete()) System.out.print("SUCCESS!");
      }
      }
    • 解析
    • 3.
    • 代码
      import javax.swing.*;
      import java.awt.event.*;
      import java.io.*;
      import java.awt.*;
      public class Java_3 implements ActionListener
      {
      private JFrame frame;
      private JButton button;
      private JButton saveButton;
      private JTextArea textArea;
      private JFileChooser dia;
      private JPanel buttonPanel;
      public void initGUI()
      {
      //*********Found********** file chosser
      frame=new JFrame("file chosser");
      button=new JButton("open file");
      button.setActionCommand("open");
      //*********Found********** this
      button.addActionListener(this);
      saveButton=new JButton("save file");
      saveButton.setActionCommand("save");
      //*********Found********** this
      saveButton.addActionListener(this);
      textArea=new JTextArea("",10,10);
      buttonPanel=new JPanel();
      dia=new JFileChooser();
      frame.addWindowListener(new WindowAdapter()
      {
      public void windowClosing(WindowEvent e)
      {
      System.exit(0);
      }
      });
      buttonPanel.add(button);
      buttonPanel.add(saveButton);
      frame.getContentPane().add(buttonPanel,BorderLayout.NORTH);
      frame.getContentPane().add(textArea,BorderLayout.CENTER);
      frame.setSize(300,300);
      //*********Found********** true
      frame.setVisible(true);
      }
         
      //*********Found********** event
      public void actionPerformed(ActionEvent event)
      {
      if(event.getActionCommand().equals("open"))
      {
      dia.showOpenDialog( frame );
      dia.setVisible(true);   
      File file=dia.getSelectedFile();
      String fileName=file.getAbsolutePath();
      textArea.append("path of selected file: "+fileName+"\r\n");                
      }
      else if(event.getActionCommand().equals("save"))
      {
      dia.showSaveDialog(frame);
      dia.setVisible(true);
      File file=dia.getSelectedFile();
      String fileName=file.getAbsolutePath();
      textArea.append("path of saved file: "+fileName+"\r\n");       
      }
      }
         
      public static void main(String args[])
      {
      Java_3 example=new Java_3();
      example.initGUI();
      }
      }
    • 解析
最后修改:2019 年 04 月 06 日 10 : 35 PM
生活需要一些仪式感,比如手冲一杯咖啡:)

发表评论