Java实验7

本文展示了两个Java Swing应用示例。第一个是一个简单的加法计算器,用户可以输入两个数并点击按钮进行计算。第二个是登录窗口,用户需输入姓名和学号进行登录验证,正确时显示'登录成功',否则提示'用户名或密码错误'。
摘要由CSDN通过智能技术生成

1.设计如下界面,并实现相应功能。

package wxy;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class wxy1 {
    private JFrame frame;
    private JLabel firstLabel,secondLabel,resultLabel;
    private JTextField firstTextField,secondTextField,resultTextField;
    private JButton countButton,clearButton,exitButton;

    public void launchFrame(){
        frame=new JFrame("加法题");
        this.firstLabel=new JLabel("操作数一");
        this.secondLabel=new JLabel("操作数二");
        this.resultLabel=new JLabel("计算结果");
        this.firstTextField=new JTextField(12);
        this.secondTextField=new JTextField(12);
        this.resultTextField=new JTextField(12);
        this.countButton=new JButton("计算");
        this.clearButton=new JButton("清除");
        this.exitButton=new JButton("退出");

        JPanel firstPanel=new JPanel();
        JPanel secondPanel=new JPanel();
        JPanel resultPanel=new JPanel();
        JPanel buttonPanel=new JPanel();
        firstPanel.add(this.firstLabel);
        firstPanel.add(this.firstTextField);
        secondPanel.add(this.secondLabel);
        secondPanel.add(this.secondTextField);
        resultPanel.add(this.resultLabel);
        resultPanel.add(this.resultTextField);
        buttonPanel.add(this.countButton);
        buttonPanel.add(this.clearButton);
        buttonPanel.add(this.exitButton);
        frame.setLayout(new GridLayout(4,1));
        frame.add(firstPanel);
        frame.add(secondPanel);
        frame.add(resultPanel);
        frame.add(buttonPanel);

        frame.setSize(300,220);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        wangxingyuan1.Monitor1 monitor1=new wangxingyuan1.Monitor1();
        this.countButton.addActionListener(monitor1);
        wangxingyuan1.Monitor2 monitor2=new wangxingyuan1.Monitor2();
        this.clearButton.addActionListener(monitor2);
        wangxingyuan1.Monitor3 monitor3=new wangxingyuan1.Monitor3();
        this.exitButton.addActionListener(monitor3);
    }
    class  Monitor1 implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {
            double num1= Double.parseDouble(firstTextField.getText());
            double num2= Double.parseDouble(secondTextField.getText());
            double num3=num1+num2;
            resultTextField.setText(""+num3);
        }
    }
    class Monitor2 implements ActionListener{

        @Override
        public void actionPerformed(ActionEvent e) {
            firstTextField.setText("");
            secondTextField.setText("");
            resultTextField.setText("");
        }
    }
    class Monitor3 implements ActionListener{
        @Override
        public void actionPerformed(ActionEvent e) {
            System.exit(0);
        }
    }

    public static void main(String[] args) {
        wxy1 WXY1=new wxy1();
        WXY1.launchFrame();
    }
}

2.设计如下界面,并实现相应功能。对于输入的用户名和密码,如果正确则给出“登录成功”的提示信息,否则给出“用户名或密码错误”的提示信息。设用户名为自己的姓名,密码为自己学号。

package wxy;
import java.awt.*;
import  javax.swing.*;
import  java.awt.event.*;

public class wxy2 {
    private JFrame frame;
    private JLabel userLable,passwordLabel;
    private  JLabel titleLabel;
    private JTextField userTextField;
    private JPasswordField passwordField;
    private JButton logonButton,registerButton;

    public void launchFrame()
    {
        frame=new JFrame("登录窗口");

        this.userLable=new JLabel("用户名");
        this.passwordLabel=new JLabel("密 码");
        this.titleLabel=new JLabel("职工信息管理系统");

        this.userTextField=new JTextField(12);
        this.passwordField=new JPasswordField(12);

        this.logonButton=new JButton("登录");
        this.registerButton=new JButton("注册");

        JPanel userPanel=new JPanel();
        JPanel passwordPanel=new JPanel();
        JPanel titlePanel=new JPanel();
        JPanel buttonPanel=new JPanel();

        titlePanel.add(this.titleLabel);
        userPanel.add(this.userLable);
        userPanel.add(this.userTextField);
        passwordPanel.add(this.passwordLabel);
        passwordPanel.add(this.passwordField);
        buttonPanel.add(this.logonButton);
        buttonPanel.add(this.registerButton);

        frame.setLayout(new GridLayout(4,1));
        frame.add(titlePanel);
        frame.add(userPanel);
        frame.add(passwordPanel);
        frame.add(buttonPanel);

        frame.setSize(300,220);
        frame.setVisible(true);
        frame.setResizable(false);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        Monitor monitor=new Monitor();
        this.logonButton.addActionListener(monitor);
    }
    class  Monitor implements ActionListener
    {
        @Override
        public  void actionPerformed(ActionEvent arg0){
            //TODO Auto-generated method stub
            String user=userTextField.getText();
          char[] mima= passwordField.getPassword();
          String password=new String(mima);
          if(user.equals(小王")&&password.equals("2011050211"))
          {
              JOptionPane.showMessageDialog(null,"登录成功!");
          }
          else
          {
              JOptionPane.showMessageDialog(null,"用户名或密码输入错误,请重新输入");
          }
        }
    }
}

class Test01
{
    public static void  main(String[] args)
    {
        wxy2 Wxy2=new wxy2();
        wxy2.launchFrame();
    }
}

实验Java多线程 一、实验目的: 熟悉利用Thread类建立多线程方法。 熟悉利用Thread接口建立多线程方法。 二、实验内容: 1. 阅读下列程序,分析并上机检验其功能。 class DelayThread exends Thread{ private static int count=0; private int no; private int delay; public DelayThread(){ count++; no=count; } public void run(){ try{ for (int i=0;i<10;i++){ delay=(int)(Math.random()*5000); sleep(delay); System.out.println(“Thread ”+no+” with a delay ”+delay); } }catch(InterruptedException e){}}} public class MyThread{ public static void main(String args[]){ DelayThread thread1=new DelayThread(); DelayThread thread2=new DelayThread(); thread1.start(); thread2.start(); try{ Thread.sleep(1000);}catch(InterruptedException e){ System.out.println(“Thread wrong”);}}} 2.讲上列程序利用Runnable接口改写,并上机检验。 3.利用多线程编写一个模拟时钟(AWT程序、Runnable接口),有时/分/秒针 编写一个应用程序,创建三个线程分别显示各自的时间。 三、实验要求: 1. 通过实验掌握Thread 、Runnable使用方法; 2. 程序必须能够实现多线程; 3. 程序必须能够完成题目要求; 4. 写出实验报告。 四、实验步骤: 首先分析程序功能,再通过上机运行验证自己的分析,从而掌握通过Thread类建立多线程的方法。 通过将扩展Thread类建立多线程的方法改为利用Runnable接口的方法,掌握通过Runnable接口建立多线程的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值