java编写火车售票系统

java编写火车售票系统,第1张

你说的这个程序应该是不难的,只不过N久没有写过javaswing 了

还有就是java没有多继承的,只有多实现接口的

继承的关键字是:extends

接口的关键字是:interface

package yaoshun.Thread

import java.awt.Color

import java.awt.Font

import java.awt.event.ActionEvent

import java.awt.event.ActionListener

import javax.swing.JButton

import javax.swing.JFrame

import javax.swing.JLabel

import javax.swing.JTextArea

/*

* 多线程同步输出

*/

public class MultiThread extends JFrame {

private int ticket// 计数变量

private JButton jButton

private JLabel jLabel

private JLabel jLabel1

private JLabel jLabel2

private JLabel jLabel3

private JLabel jLabel4

private JLabel jLabel5

private JTextArea jTextArea1

private JTextArea jTextArea2

private JTextArea jTextArea3

private JTextArea jTextArea4

private JTextArea jTextArea5

private Thread thread1

private Thread thread2

private Thread thread3

private Thread thread4

private Thread thread5

// 构造器

public MultiThread() {

setName("火车票销售情况")

setLayout(null)// 使用绝对布局

setSize(680, 720)

setResizable(false)// 设置窗体大小不变

setLocationRelativeTo(null)// 设置窗体居中

jLabel = new JLabel("火车站售票大厅")

jLabel.setBounds(280, 20, 140, 30)

jLabel.setFont(new Font(getName(), Font.BOLD, 16))// 设置字体大小

jLabel.setForeground(Color.BLUE)// 设置字体颜色

jLabel1 = new JLabel("售票窗1")

jLabel1.setBounds(72, 50, 80, 50)

jLabel1.setForeground(Color.red)

jLabel2 = new JLabel("售票窗2")

jLabel2.setBounds(192, 50, 80, 50)

jLabel2.setForeground(Color.red)

jLabel3 = new JLabel("售票窗3")

jLabel3.setBounds(312, 50, 80, 50)

jLabel3.setForeground(Color.red)

jLabel4 = new JLabel("售票窗4")

jLabel4.setBounds(432, 50, 80, 50)

jLabel4.setForeground(Color.red)

jLabel5 = new JLabel("售票窗5")

jLabel5.setBounds(552, 50, 80, 50)

jLabel5.setForeground(Color.red)

jTextArea1 = new JTextArea()

jTextArea1.setBounds(45, 100, 100, 500)

jTextArea1.setEditable(false)// 文本框不可编辑

jTextArea2 = new JTextArea()

jTextArea2.setBounds(165, 100, 100, 500)

jTextArea2.setEditable(false)// 文本框不可编辑

jTextArea3 = new JTextArea()

jTextArea3.setBounds(285, 100, 100, 500)

jTextArea3.setEditable(false)// 文本框不可编辑

jTextArea4 = new JTextArea()

jTextArea4.setBounds(405, 100, 100, 500)

jTextArea4.setEditable(false)// 文本框不可编辑

jTextArea5 = new JTextArea()

jTextArea5.setBounds(525, 100, 100, 500)

jTextArea5.setEditable(false)// 文本框不可编辑

jButton = new JButton("开始售票")

jButton.setBounds(270, 625, 140, 40)

jButton.setFont(new Font(getName(), Font.BOLD, 16))// 设置字体

jButton.setForeground(Color.blue)

thread1 = new Thread(new MyThread1())

thread2 = new Thread(new MyThread2())

thread3 = new Thread(new MyThread3())

thread4 = new Thread(new MyThread4())

thread5 = new Thread(new MyThread5())

// 为按钮添加监听器

jButton.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

thread1.start()

thread2.start()

thread3.start()

thread4.start()

thread5.start()

}

})

add(jLabel)

add(jLabel1)

add(jLabel2)

add(jLabel3)

add(jLabel4)

add(jLabel5)

add(jTextArea1)

add(jTextArea2)

add(jTextArea3)

add(jTextArea4)

add(jTextArea5)

add(jButton)

setVisible(true)// 设置窗体显示

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)// 设置窗体关闭

}

class MyThread1 extends Thread {

// 重写run方法

public synchronized void run() {

while (ticket <100) {

++ticket

jTextArea1.append("第" + ticket + "张票已售出" + "\n")

try {

Thread.sleep(100)

} catch (InterruptedException e) {

// TODO 自动生成的 catch 块

e.printStackTrace()

}

}

}

}

class MyThread2 extends Thread {

// 重写run方法

public synchronized void run() {

while (ticket <100) {

++ticket

jTextArea2.append("第" + ticket + "张票已售出" + "\n")

try {

Thread.sleep(100)

} catch (InterruptedException e) {

// TODO 自动生成的 catch 块

e.printStackTrace()

}

}

}

}

class MyThread3 extends Thread {

// 重写run方法

public synchronized void run() {

while (ticket <100) {

++ticket

jTextArea3.append("第" + ticket + "张票已售出" + "\n")

try {

Thread.sleep(100)

} catch (InterruptedException e) {

// TODO 自动生成的 catch 块

e.printStackTrace()

}

}

}

}

class MyThread4 extends Thread {

// 重写run方法

public synchronized void run() {

while (ticket <100) {

++ticket

jTextArea4.append("第" + ticket + "张票已售出" + "\n")

try {

Thread.sleep(100)

} catch (InterruptedException e) {

// TODO 自动生成的 catch 块

e.printStackTrace()

}

}

}

}

class MyThread5 extends Thread {

// 重写run方法

public synchronized void run() {

while (ticket <100) {

++ticket

jTextArea5.append("第" + ticket + "张票已售出" + "\n")

try {

Thread.sleep(200)

} catch (InterruptedException e) {

// TODO 自动生成的 catch 块

e.printStackTrace()

}

}

}

}

public static void main(String[] args) {

MultiThread multiThread = new MultiThread()

}

}

自己改一下 包名吧,这个题目是很多学校在多线程都用来的基础练习题。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12031226.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存