JAVA用户图形界面 模拟裁判评分

  • 格式:doc
  • 大小:158.00 KB
  • 文档页数:7

下载文档原格式

  / 7
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java实验报告

图形用户界面——Swing组件及事件

一、实验目的:

①掌握Java swing组件的使用方法,包括窗口、框架、对话框、面板、文本编辑框、、按钮、组合框等,掌握多种布局方式

②理解委托时间处理模型,掌握不同组件,不同事件的事件处理方法,设计出能够响应事件的Java图形用户界面

③掌握文件字符流的使用方法

二、实验名称:模拟裁判评分

三、实验要求:求若干整数的最大值、最小值和平均数。输入若干整数和浮点数,求出最大值和最小值并显示。并能用FileReader和FileWrite进行文本文件的输入输出处理,在面板上有保存进行处理。程序运行界面如下图所示:

要求:使用JTextFiled数组,数值个数可变;响应事件,计算最大值、最小值和平均分忽略空值和空串;按实际元素个数求值;解决除数为零的问题;能用FileReader和FileWrite进行文本文件的输入输出处理。

四、实验内容

package模拟裁判评分;

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

import java.io.*;

public class Source extends JFrame implements ActionListener

{

private JTextField texts[],text_source;

private JButton button;

private JButton b1,b2,b3;

private JTextField t1,t2;

//TextFile afile=new TextFile("");

private int rows,columns;

public Source(int rows,int columns ) throws IOException

{

super("模拟裁判评分");

this.setBounds(300, 240, 650, 200);

this.rows=rows;

this.columns=columns;

this.setBackground(java.awt.Color.lightGray);

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

this.getContentPane().setEnabled(false);

JPanel p1=new JPanel(new GridLayout(rows,columns));

this.getContentPane().add(p1);

texts=new JTextField[rows*columns];

for(int i=0;i

{

texts[i]=new JTextField(i+2+".0",6);

texts[i].setHorizontalAlignment(JTextField.CENTER);

p1.add(texts[i]);

}

JPanel p2=new JPanel(new FlowLayout(FlowLayout.CENTER));

this.getContentPane().add(p2,"South");

button=new JButton("平均分");

p2.add(button);

button.addActionListener(this);

text_source=new JTextField("",6);

text_source.setEditable(false);

text_source.setHorizontalAlignment(JTextField.CENTER);

p2.add(text_source);

b1=new JButton("去掉最高分");

b2=new JButton("去掉最低分");

b3=new JButton("保存");

b1.addActionListener(this);

b2.addActionListener(this);

b3.addActionListener(this);

t1=new JTextField("",6);

t2=new JTextField("",6);

t1.setEditable(false);

t2.setEditable(false);

t1.setHorizontalAlignment(JTextField.CENTER);

t2.setHorizontalAlignment(JTextField.CENTER);

p2.add(b1);

p2.add(t1);

p2.add(b2);

p2.add(t2);

p2.add(b3);

this.setVisible(true);

}

public void actionPerformed(ActionEvent e)

{ String pingjunfen,max,min;

double table[]=new double[texts.length];

for(int i=0;i

try

{ if(texts[i].getText().equals(""))

{

remove(texts[i]);

}

else

table[i]=Double.parseDouble(texts[i].getText());

}

catch(NumberFormatException nfe)

{

JOptionPane.showMessageDialog(this, texts[i].getText()+"字符串不能转换为浮点数 请重新输入。");

}

if(e.getSource()==button) //平均分

{

pingjunfen=String.valueOf( Average(table));

pingjunfen=pingjunfen.substring(0,5);

text_source.setText(pingjunfen);

}

if(e.getSource()==b1) //去掉最高分

{

max=String.valueOf( Max(table));

t1.setText(max);

}

if(e.getSource()==b2) //去掉最低分

{

min=String.valueOf( Min(table));

t2.setText(min);