首页 > 后端开发 > 正文

求一个Java小程序可运行,包含两种以上的设计模式,随便什么设计模式都行(QQ:820395827)

2024-06-05 16:36:55 | 我爱编程网

求一个Java小程序可运行,包含两种以上的设计模式,随便什么设计模式都行(QQ:820395827)很多朋友对这方面很关心,我爱编程网整理了相关文章,供大家参考,一起来看一下吧!

本文目录一览:

求一个Java小程序可运行,包含两种以上的设计模式,随便什么设计模式都行(QQ:820395827)

求一个JAVA小程序

//ClockAnimation.java

package p1;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class ClockAnimation extends JFrame

{

private StillClock clock=new StillClock();

public ClockAnimation()

{

add(clock);

Timer timer=new Timer(1000,new TimerListener());

timer.start();

}

private class TimerListener implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

clock.setCurrentTime();

clock.repaint();

}

}

public static void main(String[] args)

{

JFrame frame=new ClockAnimation();

frame.setTitle("DisplayClock");

frame.setSize(400,400);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setLocationRelativeTo(null);

frame.setVisible(true);

}

}

//StillClock.java

package p1;

import java.util.*;

import javax.swing.*;

import java.awt.*;

public class StillClock extends JPanel

{

private int hour;

private int minute;

private int second;

public StillClock()

{

setCurrentTime();

}

public StillClock(int hour,int minute,int second)

{

this.hour=hour;

this.minute=minute;

this.second=second;

}

public int getHour()

{

return hour;

}

public void setHour(int hour)

{

this.hour=hour;

repaint();

}

public int getMinute()

{

return minute;

}

public void setMinute(int minute)

{

this.minute=minute;

repaint();

}

public int getSecond()

{

return second;

}

public void setSecond(int second)

{

this.second=second;

repaint();

}

protected void paintComponent(Graphics g)

{

super.paintComponent(g);

int clockRadius=(int)(Math.min(getWidth(), getHeight())*0.3);

int xCenter=getWidth()/2;

int yCenter=getHeight()/2;

g.setColor(Color.black);

g.drawRect(20, 20, getWidth()-70,getHeight()-70);

g.setColor(Color.BLACK);

g.drawOval(xCenter-clockRadius, yCenter-clockRadius, 2*clockRadius,2*clockRadius);

g.drawString("12", xCenter-5, yCenter-clockRadius+12);

g.drawString("9", xCenter-clockRadius+3, yCenter+5);

g.drawString("3", xCenter+clockRadius-10,yCenter+3);

g.drawString("6", xCenter-3, yCenter+clockRadius-3);

int sLength=(int)(clockRadius*0.8);

int xSecond=(int)(xCenter+sLength*Math.sin(second*(2*Math.PI/60)));

int ySecond=(int)(yCenter-sLength*Math.cos(second*(2*Math.PI/60)));

g.setColor(Color.red);

g.drawLine(xCenter, yCenter, xSecond, ySecond);

int mLength=(int)(clockRadius*0.65);

int xMinute=(int)(xCenter+mLength*Math.sin(minute*(2*Math.PI/60)));

int yMinute=(int)(yCenter-mLength*Math.cos(minute*(2*Math.PI/60)));

g.setColor(Color.blue);

g.drawLine(xCenter, yCenter, xMinute, yMinute);

int hLength=(int)(clockRadius*0.5);

int xHour=(int)(xCenter+hLength*Math.sin((hour%12+minute/60.0)*(2*Math.PI/12)));

int yHour=(int)(yCenter-hLength*Math.cos((hour%12+minute/60.0)*(2*Math.PI/12)));

g.setColor(Color.green);

g.drawLine(xCenter, yCenter, xHour, yHour);

g.setColor(Color.black);

g.drawRect(20, getHeight()-35, getWidth()-70,30);

g.drawString("Hour", 60, getHeight()-15);

g.setColor(Color.white);

g.fillRect(90, getHeight()-25, 30,15);

g.setColor(Color.black);

g.drawString(""+hour, 95,getHeight()-15 );

g.drawString("Minute", 135, getHeight()-15);

g.setColor(Color.white);

g.fillRect(180, getHeight()-25, 30,15);

g.setColor(Color.black);

g.drawString(""+minute, 190,getHeight()-15 );

g.drawString("Second", 230, getHeight()-15);

g.setColor(Color.white);

g.fillRect(280, getHeight()-25, 30,15);

g.setColor(Color.black);

g.drawString(""+second, 290,getHeight()-15 );

}

public void setCurrentTime()

{

Calendar calendar=new GregorianCalendar();

this.hour=calendar.get(Calendar.HOUR_OF_DAY);

this.minute=calendar.get(Calendar.MINUTE);

this.second=calendar.get(Calendar.SECOND);

}

public Dimension getPreferredSize()

{

return new Dimension(200,200);

}

}//这是我前段时间写的一个时钟动态显示的程序!不懂的地方就直接追问吧!

求一个Java小程序可运行,包含两种以上的设计模式,随便什么设计模式都行(QQ:820395827)

跪求几个JBuider运行得Java小程序

package baidu;

import java.awt.FlowLayout;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.IOException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import javax.swing.JButton;

import javax.swing.JComboBox;

import javax.swing.JFrame;我爱编程网

import javax.swing.JLabel;

import javax.swing.JPanel;

/**

* 此类为定时关机的主界面类 这几天一直都在搞我的聊天程序,哎 但是技术问题,一直都做不走 之前一直都想写个定时关机程序,一直都是没时间,

* 现在那边做不走了,我就做做这个简单的,找点自信

*

* @author 程胜

* @date 09年1月24

* @address 家

* @version 0.1

*

*/

public class ShutDown extends JFrame {

private static final long serialVersionUID = 1L;

private JPanel pCenter = new JPanel();

private JPanel pNorth = new JPanel();

private JPanel pSouth = new JPanel();

private JButton bExit = new JButton("退出");

// 用于显示当前时间

JLabel currentTime = new JLabel();

JButton bStart = new JButton("启动");

JButton bCancel = new JButton("取消");

JLabel info = new JLabel("请设定关机时间…………");

// 此下拉框用于选择关机的小时

JComboBox hour = null;

// 此下拉框用于先择关机的分钟

JComboBox minute = null;

/**

* 构造函数初始化界面

*/

public ShutDown() {

super("定时关机小程序verson0.1");

this.setSize(250, 150);

addContent();

addEvent();

// 改变大小不可用

this.setResizable(false);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setLocationRelativeTo(this);

this.setVisible(true);

}

/**

* 为按钮添加事件监听

*/

private void addEvent() {

ActionListener buttonListen = new SetEvent();

bStart.addActionListener(buttonListen);

bCancel.addActionListener(buttonListen);

bExit.addActionListener(buttonListen);

}

/**

* 为界面添加内容

*/

private void addContent() {

// 新建一个匿名线程,用于显示当前时间

new Thread(new Runnable() {

public void run() {

SimpleDateFormat sdf = new SimpleDateFormat(

"MM'月'dd'日'HH:mm:ss");

// Thread.interrupted()为判断线程是否中断

while (!Thread.interrupted()) {

// 获取当前时间

Calendar current = Calendar.getInstance();

ShutDown.this.currentTime.setText("当前时间为:"

+ sdf.format(current.getTime()));

try {

// 休眠一秒

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}).start();

// 新建用于显示小时和分钟的字符串数组

String[] lHour = new String[24];

String[] lMinute = new String[60];

for (int i = 0; i < 24; i++) {

lHour[i] = i + "";

}

for (int i = 0; i < 60; i++) {

lMinute[i] = i + "";

}

hour = new JComboBox(lHour);

minute = new JComboBox(lMinute);

JLabel xiaoshi = new JLabel("时");

JLabel fen = new JLabel("分");

bCancel.setEnabled(false);

pNorth.setLayout(new FlowLayout());

pNorth.add(new JLabel("请设定关机时间:"));

pNorth.add(hour);

pNorth.add(xiaoshi);

pNorth.add(minute);

pNorth.add(fen);

pSouth.add(bStart);

pSouth.add(bCancel);

pSouth.add(bExit);

pCenter.setLayout(new GridLayout(2, 1));

pCenter.add(currentTime);

pCenter.add(info);

this.add(pCenter, "Center");

this.add(pNorth, "North");

this.add(pSouth, "South");

}

/**

* @param args

*/

public static void main(String[] args) {

// 设置外观

JFrame.setDefaultLookAndFeelDecorated(true);

new ShutDown();

}

/**

* 内置类,用于处理事件

*

* @author 程胜

*

*/

class SetEvent implements ActionListener {

// 用于存放关机的操作类

private Shut shut = null;

private String hour = "";

private String minute = "";

// 获得界面类

private ShutDown shutDown = ShutDown.this;

public void actionPerformed(ActionEvent e) {

// 如果事件为启动按钮触发

if (e.getSource() == bStart) {

// 获取下拉框中的数据

hour = shutDown.hour.getSelectedItem().toString();

minute = shutDown.minute.getSelectedItem().toString();

handleStart();

} else {

// 如果事件为取消按钮触发

if (e.getSource() == bCancel) {

// 取消操作

handleCancel();

} else {

// 如果事件为退出按钮触发,则退出系统

System.exit(0);

}

}

}

/**

* 取消按钮的事件的处理方法

*/

private void handleCancel() {

// 如果关机类还在活动

if (shut.isAlive()) {

// 停止关机类线程

shut.stop();

}

// 修改界面显示

shutDown.info.setText("您取消了之前设定的定时关机!");

shutDown.hour.setEnabled(true);

shutDown.minute.setEnabled(true);

shutDown.bStart.setEnabled(true);

shutDown.bCancel.setEnabled(false);

}

/**

* 启动按钮的事件的处理方法

*/

private void handleStart() {

shutDown.info.setText("您设置的关机时间是"

+ (hour.length() == 1 ? "0" + hour : hour) + "时"

+ (minute.length() == 1 ? "0" + minute : minute) + "分");

shutDown.hour.setEnabled(false);

shutDown.minute.setEnabled(false);

shutDown.bStart.setEnabled(false);

shutDown.bCancel.setEnabled(true);

// 新建并启动关机线程

shut = new Shut(Byte.parseByte(hour), Byte.parseByte(minute));

shut.start();

}

}

}

/**

* 此类为实现关机操作的类,是一个线程类

*

* @author Administrator

*

*/

class Shut extends Thread {

// 获取当前日期及时间

private Calendar shutTime = Calendar.getInstance();

private Calendar currentTime;

private byte hour = 0;

private byte minute = 0;

public Shut(byte hour, byte minute) {

this.hour = hour;

this.minute = minute;

}

/*

* 覆写run方法

*/

public void run() {

// 调用关机时间处理方法

handleTime();

while (!Thread.interrupted()) {

// 循环获取系统时间

currentTime = Calendar.getInstance();

// 如果关机时间在当前时间之前

if (shutTime.before(currentTime)) {

// 调用关机方法

shutDown();

// 退出系统

System.exit(0);

}

try {

// 线程休眠一秒

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

/**

* 关机方法

*/

private void shutDown() {

String shutdown = "shutdown -s";

Runtime rt = Runtime.getRuntime();

try {

rt.exec(shutdown);

} catch (IOException e) {

e.printStackTrace();

}

}

/**

* 用于计算关机的时间

*/

private void handleTime() {

java.util.Date date = new java.util.Date();

if (date.getHours() > hour) {

date.setDate(date.getDate() + 1);

}

if (date.getHours() == hour) {

if (date.getMinutes() > minute) {

date.setDate(date.getDate() + 1);

}

}

date.setHours(hour);

date.setMinutes(minute);

date.setSeconds(0);

shutTime.setTime(date);

}

}

求一个Java小程序可运行,包含两种以上的设计模式,随便什么设计模式都行(QQ:820395827)

求一个Java小程序可运行,包含两种以上的设计模式,随便什么设计模式都行(QQ:820395827)

public class ManFactory {

/* 以下是单例模式的使用,外部需要使用该类时只能实例化一个对象*/

private static ManFactory mf = new ManFactory();

private static List allMan = new ArrayList();

private ManFactory(){}

public static ManFactory instance(){

return mf;

}

/*这里是简单工厂模式的使用,当需要一个人的时候,直接调用工厂类的造人方法, 而不用去新建一个人*/

public Man makeMan(String name){

Man man = new Man();

man.setName(name);

allMan.add(man);//将造出来的人放入工厂的一个集合中,当以后需要这群人统一做事的时候,可以直接获取到

return man;

}

public static List getAllMan() {

return allMan;

}

class Man{

private String name;

public void dancing(){

System.out.println(name +"正在跳舞");

}

public void setName(String name) {

this.name = name;

}

}

public static void main(String[] args) {

/*使用了单例模式,看上去是构建了两个工厂,其实用的还是一个*/

ManFactory fc = ManFactory.instance();

ManFactory fc2 = ManFactory.instance();

fc.makeMan("小明");

fc.makeMan("小红");

fc2.makeMan("小杨");

fc2.makeMan("小张");

for(Man man:ManFactory.getAllMan()){

man.dancing();

}

}

}

以上就是我爱编程网为大家带来的求一个Java小程序可运行,包含两种以上的设计模式,随便什么设计模式都行(QQ:820395827),希望能帮助到大家!

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“求一个Java小程序可运行,包含两种以上的设计模式,随便什么设计模式都行(QQ:820395827)”相关推荐
python程序的两种运行方式是什么
python程序的两种运行方式是什么

运行python的两种方法具体如下。言归正传,python的主要有两种运行方式,一种是交互式方式(使用带提示符的解释器),一种是使用源文件方式:在windows命令行窗口键入python(事先你须安装好python,并配置好path),运行效果:写下你第一个python程序,输出Helloworld!安装好Python后,它会自带一个IDLE编辑器,打开编辑器,新建一个文件,去写第一

2024-02-26 21:29:40
课设运行java程序 Java课程设计!急!!!(高分)
课设运行java程序 Java课程设计!急!!!(高分)

Java课设简单的五子棋程序新建一个chess类,其中代码如下packagework;importjava.awt.Color;publicclassChess{publicstaticfinalintdiamter=30;privateintx;//在网格中的索引,0~15privateinty;//在网格中的索引,0~15privateColorcol

2024-04-18 18:21:59
如何写一个标准的Java单例模式
如何写一个标准的Java单例模式

让Java程序只运行一个实例一个程序可以在内存里面存在多个运行实例比如你可以打开多个微软的Word程序但是有些时候我们需要控制程序运行的实例只有一个也就是说该程序同一时刻在内存里面运行的只有一个实例这样当这个程序在内存中已经存在一个运行实例而用户又再次运行了该程序的时候有两种结果第一种结果是结束目前的运行实例打开新运行的实例第二种就是让新运行的实例退出原有的运行实例继续运行原理因为任何时候只

2024-04-05 13:39:52
eclipse怎么进行 可视化java界面设计?
eclipse怎么进行 可视化java界面设计?

eclipse怎么进行可视化java界面设计?准备工作:1、下载JDK;2、下载Eclipse;3、下载相应的EMF、GEF、VE;开始安装:1、安装JDK;这个比较容易,标准的Windows安装程序,下一步,再下一步即可,安装完成后,也不需要重启。2、安装Eclipse;Eclipse是绿色软件,不需要安装,只需要解压缩,然后即可运行。

2024-05-22 02:13:38
python语言程序设计考什么
python语言程序设计考什么

python语言程序设计考什么考试内容包括Python语言的基本语法元素、基本数据类型、程序控制结构、函数和代码复用、组合数据类型、文件和数据格式化和Python计算生态。Python是一种广泛使用的解释型、高级和通用的编程语言。Python由荷兰数学和计算机科学研究学会的GuidovanRossum创造,第一版发布于1991年,它是ABC语言的后继者,也可以视之为一种使用传统中缀表

2024-01-20 03:31:29
关于拍摄语言的编程模式,哪个说法正确?
关于拍摄语言的编程模式,哪个说法正确?

关于拍摄语言的编程模式,哪个说法正确?关于Python语言的编程模式,哪个说法正确(()。A、Python采用语句式交互编程模式B.Python采用函数式编程模式C、Python采用面向对象编程模式D、以上选项都正确D是正确的。Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆于1990年代初设计,作为一门叫做ABC语言的替代品。Python提供了

2024-01-24 17:48:46
用java实现一个模拟操作系统内核运行的程序。(1)进程控制:其中包括进程创建与撤销 JAVA模拟器排行榜前十名下载-好玩的JAVA模拟器大全
用java实现一个模拟操作系统内核运行的程序。(1)进程控制:其中包括进程创建与撤销 JAVA模拟器排行榜前十名下载-好玩的JAVA模拟器大全

用java实现一个模拟操作系统内核运行的程序。(1)进程控制:其中包括进程创建与撤销在编写Java程序时,有时候需要在Java程序中执行另外一个程序。1、启动程序Java提供了两种方法用来启动其它程序:(1)使用Runtime的exec()方法(2)使用ProcessBuilder的start()方法不管在哪种操作系统下,程序具有基本类似的一些属性。一个程序启动后就程序

2024-03-19 22:54:30
python怎么使用qtdesigner设计的ui
python怎么使用qtdesigner设计的ui

python怎么使用qtdesigner设计的ui软硬件环境OSXEICapitanPython3.5.1PyQt5.5.1PyCharm5.0.1前言在PyQt5系列教程的第一篇h50218157,我们已经搭建好了开发环境,今天,我们就用Python开发第一个QtGUI程序,让大家感受下Qt开发的魅力,熟悉下Qt开发GUI程序的一般流

2024-01-05 08:33:43