如何在Java GUI中使用数组、文件和创建图表

一、数组

什么是数组?数组是具有类似类型的数据集合。通过使用数组,可以存储大量类似类型的数据。数组是 Java 提供的一种数据结构,用于处理多个数据,这与普通变量的概念不同,普通变量只能存储一个数据。

如何定义数组:

datatype(数据类型)[] ArrayName; 
//或者 
datatype(数据类型) ArrayName[]; 

我们可以看出,数组变量的声明格式与普通变量的声明格式几乎相同,数据引用只要在数据类型之后或数组名称之后使用方括号“[ ]”。
如果像定义数组储存的数据量,我们可以在“[ ]”中使用数字来定义存储数据的多少:

int Data[] = new int[10];   //名为 Date 的 int 类型数组可以存储 10 个数据 
String Name[] = new String[5];   //名为 Name 的 String 类型数组可以存储 5个数据 

在数组中存储数据可以通过直接初始化数据或将值赋给每个数组索引来完成。
如下所示

//声明并初始化数组 
int data[] = {1,2,3,4,5,6,10};   
//使用数组的索引为其赋值 
int Score[] = new int[6]; 
Score[0] = 3; 
Score[1] = 2; 
Score[2] = 9; 
Score[3] = 8; 
Score[4] = 7; 
Score[5] = 10; 

注意:数组的储存都是由0~n开始

二、进行对文件的操作

这里将要了解如何执行文件操作,包括读取文本和 excel 文件中的数据,以及如何将处理后的数据存储在文本和 excel 文件中。
读取文件通常是在程序执行相当大的处理时完成的。由于数据量大,不可能存储在数组或普通变量中。针对从文件中读取输入,Java 提供了 IO 库中的几个类。

我们来看个案例大致了解一下读取文本文件的操作:

  • 我们创建一个可以读取文件的小程序:图书信息读取
  • 准备好一个编写有图书信息的文本文件用于读取,文本名自定 添加一个文本为“读取的按钮”,变量名自定
  • 添加一个表,只有一个书名的列,行和你文本中的数据行数一至,这里是10行,用来显示十本书的名字

初步效果如图所示:
在这里插入图片描述
我们来看一下代码:

在读取文本文件之前,要做的第一步是使用以下代码从 IO 库引入BufferedReader、File 和FileReader 类:

import java.io.BufferedReader; 
import java.io.File; 
import java.io.FileReader 

这是按钮事件的代码:

private void DisplayButtonActionPerformed(java.awt.event.ActionEvent evt) {            
    // TODO add your handling code here:
     String data; 
     FileReader fr; 
     BufferedReader br; 
     int i = 0; 

     try{ 
          fr = new FileReader(new File("C:\\Users\\dell\\Desktop\\项目文件\\books.txt")); 
             br = new BufferedReader(fr); 
             data = br.readLine(); 
          while (data != null){ 
             tableBook.getModel().setValueAt(data, i, 0); 
             data = br.readLine(); 
            i++;
         } 
       } catch (Exception ex){ 
    } 
}                   

编写后点击执行按钮效果如图所示:
在这里插入图片描述
文件读取涉及到来自 IO 库的 3 个类,分别是 File、FileReader和 BufferedReader 类。fr 是 FileReader 的对象,br 是 BufferedReader 的对象,用于读取文本文件。
读取文件的代码就是上面的

 fr = new FileReader(new File("C:\\Users\\dell\\Desktop\\项目文件\\books.txt")); 
                 br = new BufferedReader(fr); 
                 data = br.readLine(); 
 

这个名为books.txt文件就是我们需要自己编写的书名文件。

读取Excel文件
了解如何读取文本文件后,我们来了解如何读取excel文件:

读取、创建和写入excel文件将使用一个外部库,即Aphace POI。Apache POI是一个Java API,用于基于 Office Open XML 操作各种文件格式。有了Aphace POI,我们可以在java中读写excel文件,还可以使用 Java 读写 MS Word 和 MS PowerPoint。

这是Aphace POI官网下载链接:
https://poi.apache.org/download.html
下载完后,进入解压目录,必须提取所需目录中的文件。
下图是已解压缩的 Apache POI 文件:
在这里插入图片描述
安装完成后我们来看一个案例:

  • 准备一个自己备好的Excel文件
  • 添加一个按钮,变量名自定,并修改文本内容为 Read Excel
  • 添加一个表,变量名自定,列名根据你尊卑的Execl表里内容决定
    大体如下:
    在这里插入图片描述

这是准备用来读取的Excel文件
在这里插入图片描述
在设计了应用程序界面之后,要做的第一步是将 Apache POI 添加到项目中。有几个必须添加到项目库中的.jar 文件。以下是必须添加到项目库中的文件
在这里插入图片描述
添加项目需要右击项目文件,在项目属性窗口 Categories→Libraries→Compile
注意:
这里有些特殊情况,有的人可能没有Libraries这个选项,这里我们需要手动添加
右击项目中的Depebdebcies目录,点击Add Dependecy这个选项,如图所示:
在这里插入图片描述
照着下面填写添加即可:
Group ID:org.apche.poi
Artifact ID:poi
Version:4.1.2

Group ID
org.apche.poi
Artifact ID:poi-ooxml
Version:4.1.2
手动导入这两个即可

导入完成后,我们来看看代码:
在创建按钮的事件之前,必须使用以下代码导入几个类

import java.io.File; 
import java.io.FileInputStream; 
import org.apache.poi.ss.usermodel.Sheet; 
import org.apache.poi.ss.usermodel.Row; 
import org.apache.poi.ss.usermodel.Workbook; 
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

导入这些类之后,下一步是为“Read Excel”按钮创建一个事件,下面是“Read Excel”按钮事件的代码

 private void ReadButtonActionPerformed(java.awt.event.ActionEvent evt) {                                           
        // TODO add your handling code here:
         try{ 
           File file = new File("C:\\Users\\dell\\Desktop\\项目文件\\books.xlsx"); 
           FileInputStream fis = new FileInputStream(file); 
           Workbook wb=new XSSFWorkbook(file); 
           Sheet filesheet=(Sheet)wb.getSheet("Sheet1"); 
            int numrows = filesheet.getLastRowNum()-filesheet.getFirstRowNum(); 
            for(int i=1;i<=numrows;i++){ 
               Row row=filesheet.getRow(i); 
            //获取每列的数据 
             int no=(int)row.getCell(0).getNumericCellValue(); 
             String title=row.getCell(1).getStringCellValue(); 
             String author=row.getCell(2).getStringCellValue(); 
             String publisher=row.getCell(3).getStringCellValue(); 
             int year=(int)row.getCell(4).getNumericCellValue(); 
             int totalpage=(int)row.getCell(5).getNumericCellValue(); 
          //将数据展示到表格中 
             tableBook.getModel().setValueAt(no,(i-1),0); 
             tableBook.getModel().setValueAt(title,(i-1),1); 
             tableBook.getModel().setValueAt(author,(i-1),2); 
             tableBook.getModel().setValueAt(publisher,(i-1),3); 
             tableBook.getModel().setValueAt(year,(i-1),4); 
             tableBook.getModel().setValueAt(totalpage,(i-1),5); 
        } 
     }catch(Exception ex) 
     { 
        
javax.swing.JOptionPane.showMessageDialog(rootPane,ex.toString()); 
    } 
    }

执行按钮后效果如图
在这里插入图片描述
到这里,我们基本上就能了解如何读取Excel文件了

三、创建图表

我们使用 JFreeChart 来创建图形。

JFreeChart 是一个外部库,它是使用 Java 编程语言开发的,并且是开源的。此库可用于在所有基于 Java 的应用程序上创建 2D 或 3D 图形。
要使用 JFreeChart 库,首先要从以下站点链接下载该库:
http://www.jfree.org/jfreechart/download
在这里插入图片描述
下载完成后解压到自己所需的目录下,图中是解压后文件的样子:
在这里插入图片描述
用于创建图形的文件是位于 jfreechart-1.0.1/lib 件夹中的 jfreechart-1.0.1.jar 和 jcommon-1.0.0.jar
在这里插入图片描述
注意:这两个需要我们创建项目时需要加载的,方法在之前介绍过,这里就不重复声明了,特殊情况需要手动载入的,我在这里给出:
Group ID:jfree
Artifact ID:jfreechart:
Version:1.0.1

Group ID:jfree
Artifact ID:jcommon
Version:1.0.0

我们看一下案例:

  • 添加一个表,变量名自定
  • 添加一个面板,变量名自定,这个面板将被用作显示访问者统计图表的地方
  • 添加一个按钮,变量名自定

大体如图所示:
在这里插入图片描述
将 JFreeChart 添加到项目库之后,下一步是使用以下代码导入几个类

import org.jfree.chart.ChartPanel; 
import org.jfree.chart.ChartFactory; 
import org.jfree.chart.JFreeChart; 
import org.jfree.data.category.DefaultCategoryDataset; 
import org.jfree.chart.plot.PlotOrientation; 
import javax.swing.table.DefaultTableModel; 

从上面的代码中可以看到,JFreeChart 中有 5 个类将用于创建线性图。这些类是 ChartPanel 、 ChartFactory 、 JFreeChart 、 DefaultCategoryDataset 和PlotOrientation

以下是“显示统计数据”按钮的事件代码

private void DisplayButtonActionPerformed(java.awt.event.ActionEvent evt) { 
    // TODO add your handling code here:
     Integer [][]visitordata={{2004,1500},{2005,1450},{2006,2000},{2007,2050},{2008,2500},{2009,2000}, {2010,1600},{2011,3000},{2012,3200},{2013,4000},{2014,3500},{2015,2000},{2016,2300}}; 
     String []title = {"年份","访问人数"}; 
      //显示数据到表格中 
     DefaultTableModel model = new DefaultTableModel(); 
     model.setDataVector(visitordata, title); 
     tablevisitor.setModel(model); 
      //创建访问人数的图表 
      DefaultCategoryDataset chart_dataset = new DefaultCategoryDataset(); 
      for(int i=0;i<12;i++){ 
         chart_dataset.addValue(visitordata[i][1], "图书部访问人员统计数据", visitordata[i][0]); 
     } 
  
    JFreeChart lineChart = ChartFactory.createLineChart("图书馆访问人员统计表图","年份","访问人数",chart_dataset,PlotOrientation.VERTICAL, true, true, false); 
    ChartPanel chartpanel = new ChartPanel(lineChart); 
    chartpanel.setSize(panelChart.getSize()); 
    panelChart.removeAll(); 
    panelChart.add(chartpanel); 
    panelChart.validate(); 
}                        

执行后结果如图,需先点击显示数据,再点击一下面板位置才能出现图表
在这里插入图片描述
这就是如何创建图标的基本操作了。

总结:

这就是如何在java中使用数组、文件和创建图表的概念、方法和案例。希望能够帮助大家多多了解到java的运用。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值