日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java语言实验报告,Java语言 实验报告(二)

發(fā)布時間:2025/3/12 java 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java语言实验报告,Java语言 实验报告(二) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

實驗報告(二)

實驗目的

熟悉 Java 圖形界面的基本設計。

熟悉 Java 界面的菜單使用方法。

熟悉 Java 的多線程應用程序開發(fā)方法。

實驗任務 1

編寫 Java 應用程序,實現(xiàn)以下登陸界面(需注意密碼框輸入的內容不顯示明文)

實驗源代碼

package com.science.sc2.No1;

import java.awt.*;

import java.awt.event.WindowEvent;

import java.awt.event.WindowListener;

public class Main {

public static void main(String[] args) {

Frame frame = new Frame("登陸");

frame.setSize(400,300);

frame.setVisible(true);

//添加監(jiān)聽器,點擊右上角的X后關閉按鈕

frame.addWindowListener(new WindowListener() {

@Override

public void windowOpened(WindowEvent e) {

}

@Override

public void windowClosing(WindowEvent e) {

frame.dispose();

}

@Override

public void windowClosed(WindowEvent e) {

}

@Override

public void windowIconified(WindowEvent e) {

}

@Override

public void windowDeiconified(WindowEvent e) {

}

@Override

public void windowActivated(WindowEvent e) {

}

@Override

public void windowDeactivated(WindowEvent e) {

}

});

frame.setLayout(null);

Label l1 = new Label("用戶名:");

Label l2 = new Label("密 碼:");

TextField username = new TextField(30);

TextField password = new TextField(30);

Button btn = new Button("確定");

frame.add(l1);

frame.add(l2);

frame.add(username);

frame.add(password);

frame.add(btn);

l1.setBounds(50,80,60,20);

username.setBounds(110,80,200,20);

l2.setBounds(50,120,60,20);

password.setBounds(110,120,200,20);

btn.setBounds(160,160,80,40);

password.setEchoChar('*'); //設置回顯字符

frame.setLocationRelativeTo(null); //默認顯示在正中間

}

}

實驗運行截圖

實驗任務2

編寫 Java 應用程序,實現(xiàn)以下界面:

實驗源代碼

package com.science.sc2.No2;

import java.awt.*;

import java.awt.event.WindowEvent;

import java.awt.event.WindowListener;

public class Main {

public static void main(String[] args) {

Frame frame = new Frame("Menu");

frame.setSize(400,300);

frame.setVisible(true);

//添加監(jiān)聽器,點擊右上角的X后關閉按鈕

frame.addWindowListener(new WindowListener() {

@Override

public void windowOpened(WindowEvent e) {

}

@Override

public void windowClosing(WindowEvent e) {

frame.dispose();

}

@Override

public void windowClosed(WindowEvent e) {

}

@Override

public void windowIconified(WindowEvent e) {

}

@Override

public void windowDeiconified(WindowEvent e) {

}

@Override

public void windowActivated(WindowEvent e) {

}

@Override

public void windowDeactivated(WindowEvent e) {

}

});

frame.setLayout(null);

frame.setLocationRelativeTo(null); //默認顯示在正中間

MenuBar menuBar = new MenuBar();

frame.setMenuBar(menuBar);

Menu menu1 = new Menu("File");

Menu menu2 = new Menu("Format");

Menu menu3 = new Menu("Help");

menuBar.add(menu1);

menuBar.add(menu2);

menuBar.add(menu3);

Menu menu22 = new Menu("進制");

menu2.add(new MenuItem("中文"));

menu2.add(menu22);

menu22.add(new CheckboxMenuItem("二進制"));

menu22.add(new CheckboxMenuItem("八進制"));

menu22.add(new CheckboxMenuItem("十進制"));

}

}

實驗運行截圖

實驗任務 3

編寫一個 Java 多線程應用程序,完成三個售票窗口同時出售 20 張票。具體要求如下:

票數(shù)要使用同一個靜態(tài)值;

為保證不會出現(xiàn)賣出同一個票數(shù),要 java 多線程同步鎖。

設計思路:

創(chuàng)建一個站臺類 Station,繼承 Thread,重寫 run 方法,在 run 方法里面執(zhí)行售票操作。

售票要使用同步鎖:即有一個站臺賣這張票時,其他站臺要等這張票賣完。

創(chuàng)建主方法調用類。

運行效果參考下圖:

實驗源代碼

package com.science.sc2.No3;

public class Main {

public static final int DEFAULT_TICKET = 20;

public static final int DEFAULT_STATION = 3;

public static int ticket = 1;

public static int station = DEFAULT_STATION;

public static class Station extends Thread{

@Override

public void run() {

while(true){

synchronized (Main.class){

if(ticket <= DEFAULT_TICKET){

System.out.println(this.getName() + "賣出了第" + (ticket++) + "張票");

if(ticket > DEFAULT_TICKET){

System.out.println("票賣完了!");

}

}else{

break;

}

}

try {

Thread.sleep(50);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

public Station(String name) {

super(name);

}

}

public static void main(String[] args) {

for (int i = 1; i <= station; i++) {

new Station("窗口" + i).start();

}

}

}

實驗運行截圖

標簽:Java,語言,frame,void,WindowEvent,Override,new,實驗報告,public

來源: https://blog.csdn.net/qq_45740349/article/details/113783660

總結

以上是生活随笔為你收集整理的java语言实验报告,Java语言 实验报告(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。