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


    Java语言程序设计 上机实验6

    实验目的

    掌握Java的图形用户界面编程,掌握布局管理器和事件的响应方法。

    实验内容:(*)为选做内容

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

     

    要求:

    1) 采用Swing组件设计图形用户界面,采用3个文本行JTextField分别表示两个操作数和运算结果,其中表示运算结果的文本行只能显示,不能输入;采用组合框JComboBox提供多种算数运算符的选择方式,组合框只能在下拉列表中选择,不能编辑。

    2) 文本行要响应单击事件,组合框要响应选择事件。两个事件处理方法执行由组合框指定的算术运算。

    3) 进行异常处理。当文本行中的字符串不能转换成整数时,弹出对话框显示指定信息,提示用户重新输入。

    1. (*) 显示字符串中每个字符的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();
        }
    }
  • 相关阅读:
    应用SecureCRT(发送接收文件)
    应用mysql(Linux中安装)
    应用tomcat(Linux中安装)
    应用Oracle(Linux中的安装)
    关于Linux(时间网路同步)
    VmWare问题解决(网络变更后虚拟主机无法上网)
    [Android学习笔记]Bitmap,BitmapDrawable,BitmapFactory学习笔记
    [Android学习笔记]获取view的尺寸和坐标
    [Android学习笔记]继承自ViewGroup的控件的过程学习
    [Android学习笔记]Canvas的使用
  • 原文地址:https://www.cnblogs.com/xukaiae86/p/6443131.html
Copyright © 2020-2023  润新知