Java语言程序设计 上机实验6 掌握Java的图形用户界面编程,掌握布局管理器和事件的响应方法
Posted xukaiae86
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java语言程序设计 上机实验6 掌握Java的图形用户界面编程,掌握布局管理器和事件的响应方法相关的知识,希望对你有一定的参考价值。
Java语言程序设计 上机实验6
实验目的:
掌握Java的图形用户界面编程,掌握布局管理器和事件的响应方法。
实验内容:标(*)为选做内容
- 输入两个整数,分别进行加、减、乘、除等算术运算,界面如下图所示。
要求:
1) 采用Swing组件设计图形用户界面,采用3个文本行JTextField分别表示两个操作数和运算结果,其中表示运算结果的文本行只能显示,不能输入;采用组合框JComboBox提供多种算数运算符的选择方式,组合框只能在下拉列表中选择,不能编辑。
2) 文本行要响应单击事件,组合框要响应选择事件。两个事件处理方法执行由组合框指定的算术运算。
3) 进行异常处理。当文本行中的字符串不能转换成整数时,弹出对话框显示指定信息,提示用户重新输入。
- (*) 显示字符串中每个字符的Unicode值,参考下图。
提示:使用表格组件,表格大小根据字符串长度变化。
实验要求:
1. 在实验报告中给出程序运行结果截图。
2. 源程序代码附到实验报告的最后。
3. 认真填写实验报告并妥善存档,在下次上机实验课之前发送电子版实验报告至 wsycup@foxmail.com。
注意,“邮件标题”与“附件实验报告文件名”均为:
Java1实验报告N_学号_姓名
其中N为阿拉伯数字,指第几次实验,例如:
Java1实验报告3_ 2012010400_李雷
请严格按照规定的格式发送邮件(注意标题中“Java”后的数字“1”),邮件标题不符合格式要求等同于未交作业,并在规定的时间发送实验报告邮件,过期无效。
4. 实验报告雷同者将不能得到相应的平时分。
附录:实验报告
实验题目__实验6_______
学号_2014011329__ 姓名_许恺____ 班级__计算机14-1__ 时间__2016.5.11____
实验题目解答
附:源程序
package com.Test6;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Test6 extends JFrame implements ActionListener
private JTextField tex1,tex2,fin;
private JLabel jl;
private MessageJDialog jd;
private JComboBox box;
private static String fuhao[]="+","-","*","/";
int i;
public Test6()
super("整数计算器");
this.setBounds(300,240,420,80);
this.setResizable(false);
this.setBackground(java.awt.Color.lightGray);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.getContentPane().setLayout(new FlowLayout(FlowLayout.LEFT));
tex1=new JTextField(10);
this.getContentPane().add(tex1);
tex1.setHorizontalAlignment(JTextField.LEFT);
tex1.addActionListener(this);
box=new JComboBox<String>(fuhao);
box.addActionListener(this);
box.setEditable(false);
this.getContentPane().add(box);
tex2=new JTextField(10);
this.getContentPane().add(tex2);
tex2.setHorizontalAlignment(JTextField.LEFT);
tex2.addActionListener(this);
jl=new JLabel("=");
this.getContentPane().add(jl);
jl.setHorizontalAlignment(JTextField.LEFT);
fin=new JTextField(10);
this.getContentPane().add(fin);
fin.setHorizontalAlignment(JTextField.LEFT);
fin.setEditable(false);
fin.addActionListener(this);
jd=new MessageJDialog(this);
this.setVisible(true);
private class MessageJDialog extends JDialog
JLabel jla;
JFrame Frame;
MessageJDialog(JFrame Frame)
super(Frame,"警告",true);
this.Frame=Frame;
this.setSize(300,80);
jla=new JLabel("111",JLabel.CENTER);
this.getContentPane().add(jla);
this.setDefaultCloseOperation(HIDE_ON_CLOSE);
void show(String message)
jla.setText(message);
this.setLocation(Frame.getX()+100,Frame.getY()+100);
this.setVisible(true);
public void actionPerformed(ActionEvent a)
if(a.getSource()==box)
i=box.getSelectedIndex();
if(a.getSource()==tex2||a.getSource()==tex1)
String str = null;
try
if(i==0)
Integer x=Integer.parseInt(tex1.getText());
Integer y=Integer.parseInt(tex2.getText());
str=Integer.toString(x+y);
else if(i==1)
Integer x=Integer.parseInt(tex1.getText());
Integer y=Integer.parseInt(tex2.getText());
str=Integer.toString(x-y);
else if(i==2)
Integer x=Integer.parseInt(tex1.getText());
Integer y=Integer.parseInt(tex2.getText());
str=Integer.toString(x*y);
else if(i==3)
Integer x=Integer.parseInt(tex1.getText());
Integer y=Integer.parseInt(tex2.getText());
if(y==0)
jd.show("除数不能为0");
tex1.setText("");
tex2.setText("");
fin.setText("");
else
str=Integer.toString(x/y);
fin.setText(str);
catch(NumberFormatException e1)
jd.show("请输入整数");
tex1.setText("");
tex2.setText("");
fin.setText("");
finally;
/*try
int x=Integer.parseInt(tex1.getText());
int y=Integer.parseInt(tex2.getText());
if(box.getSelectedIndex()==0)
fin.setText(Integer.toString(x+y));
if(box.getSelectedIndex()==1)
fin.setText(Integer.toString(x-y));
if(box.getSelectedIndex()==2)
fin.setText(Integer.toString(x*y));
if(box.getSelectedIndex()==3&&tex2.getText()!="0")
fin.setText(Integer.toString(x/y));
catch(NumberFormatException e1)
jla.show("您输入的字符不能转换成整型,请重新输入!");
*/
public static void main(String[] args)
// TODO Auto-generated method stub
new Test6();
以上是关于Java语言程序设计 上机实验6 掌握Java的图形用户界面编程,掌握布局管理器和事件的响应方法的主要内容,如果未能解决你的问题,请参考以下文章