Java语言程序设计 上机实验6掌握Java的图形用户界面编程,掌握布局管理器和事件的响应方法

大鹏一日同风起,扶摇直上九万里。这篇文章主要讲述Java语言程序设计 上机实验6掌握Java的图形用户界面编程,掌握布局管理器和事件的响应方法相关的知识,希望能为你提供帮助。


Java语言程序设计 上机实验6
实验目的:
掌握java的图形用户界面编程,掌握布局管理器和事件的响应方法。
实验内容:标(*)为选做内容


  1. 输入两个整数,分别进行加、减、乘、除等算术运算,界面如下图所示。

Java语言程序设计 上机实验6掌握Java的图形用户界面编程,掌握布局管理器和事件的响应方法

文章图片



【Java语言程序设计 上机实验6掌握Java的图形用户界面编程,掌握布局管理器和事件的响应方法】要求:
1) 采用Swing组件设计图形用户界面,采用3个文本行JTextField分别表示两个操作数和运算结果,其中表示运算结果的文本行只能显示,不能输入;采用组合框JComboBox提供多种算数运算符的选择方式,组合框只能在下拉列表中选择,不能编辑。
2) 文本行要响应单击事件,组合框要响应选择事件。两个事件处理方法执行由组合框指定的算术运算。
3) 进行异常处理。当文本行中的字符串不能转换成整数时,弹出对话框显示指定信息,提示用户重新输入。

  1. (*) 显示字符串中每个字符的Unicode值,参考下图。

提示:使用表格组件,表格大小根据字符串长度变化。
Java语言程序设计 上机实验6掌握Java的图形用户界面编程,掌握布局管理器和事件的响应方法

文章图片
Java语言程序设计 上机实验6掌握Java的图形用户界面编程,掌握布局管理器和事件的响应方法

文章图片

实验要求:
1. 在实验报告中给出程序运行结果截图。
2. 源程序代码附到实验报告的最后。
3. 认真填写实验报告并妥善存档,在?下?次上机实验课之前?发送电子版实验报告至 ??wsycup@foxmail.com??。
注意,“?邮件标题?”与“?附件实验报告文件名?”均为:
Java1实验报告N_学号_姓名
其中N为阿拉伯数字,指第几次实验,例如:
Java1实验报告?3_ 2012010400_李雷
?请严格按照规定的格式?发送邮件??(注意标题中“Java”后的数字“1”),邮件标题不符合格式要求等同于未交作业,并在规定的时间发送实验报告邮件,过期无效。
4. 实验报告雷同者将不能得到相应的平时分。






附录:实验报告
实验题目__实验??6?_______
学号_2014011329__姓名_许恺____班级__计算机14-1__时间__2016.5.11____
实验题目解答
Java语言程序设计 上机实验6掌握Java的图形用户界面编程,掌握布局管理器和事件的响应方法

文章图片

Java语言程序设计 上机实验6掌握Java的图形用户界面编程,掌握布局管理器和事件的响应方法

文章图片

Java语言程序设计 上机实验6掌握Java的图形用户界面编程,掌握布局管理器和事件的响应方法

文章图片

Java语言程序设计 上机实验6掌握Java的图形用户界面编程,掌握布局管理器和事件的响应方法

文章图片

Java语言程序设计 上机实验6掌握Java的图形用户界面编程,掌握布局管理器和事件的响应方法

文章图片



附:源程序


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();














    推荐阅读