logo资料库

java编写的转动小风扇程序.doc

第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
资料共10页,剩余部分请下载后查看
Java 程序设计实验报告 Java Programming Assignment 专 业:信息与计算科学专业 班 级:信 计 1 1 0 2 班 学 号:1 1 0 8 0 6 0 2 2 3 姓 名:姜 圣 涛 2013 年 06 月 05 日
目录 一 功能描述........................................................................................................2 二 Java 源文件与类描述...................................................................................2 三 界面设计与事件处理说明...........................................................................2 四、(其它).....................................................................................................3 源程序代码................,,,,,,,,.................................................................................3 程序运行界面..........,,,,,,,,....................................................................................8 实验总结...............,,,,,,,,.......................................................................................9 1
通过代码将程序改造成为一个可以自动旋转的小风扇,并且做到: 一、功能描述 (1)当按下加速时可以加快小风扇的旋转速度。 (2)当按下减速时可以减缓小风扇的旋转速度。 (3)当按下切换旋转方向时小风扇可以反着旋转。 (4)当按下暂停时小风扇可以停止转动。 (5)当按下开始时小风扇可以以默认速度值进行旋转。 二、Java 源文件与类描述 方 法 void main(String[] args) 备 注 主函数 public Fengche() Void arg0) actionPerformed(ActionEven void paintComponent(Graphics page) void actionPerformed(ActionEvent e) void actionPerformed(ActionEvent event) 这个类继承了 Jpanl 类并成为程 序的主体部分; 画出小风扇。 内部类 内部类 内部类 类 名 zhuhanshu Fengche 属 性 Public Public TListener StopListener public private OtherListener private void actionPerformed(ActionEvent event) 三、界面设计与事件处理说明 程序运行主界面如下方界面图所示,总结布局思路是将 5 个按钮放在主界面的下面(开 始,暂停,加速,减速,切换旋转方向)。 (1)当按下开始时,风扇以默认的速度大小值为 10 进行旋转。 (2)当按下加速时,风扇将加速旋转,重复按,旋转速度越来越快,界面中可以看到 相应的速度大小值。 (3)当按下减速时,风扇将减速旋转,重复按,旋转速度越来越慢,界面中可以看到 相应的速度大小值。 (4)当按下暂停时,风扇将暂停,停止旋转。 (5)当按下切换旋转方向时,风扇将反方向旋转。 2
四、(其它) 附:源程序代码 import javax.swing.*; public class Zhuhanshu { public static void main(String[] args) { JFrame frame = new JFrame("@@@************* 小风扇 *************@@@"); Fengche panel = new Fengche(); frame.getContentPane().add(panel); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); } } *********************************************************************************** *********************************************************************************** import java.awt.*; import javax.swing.*; import java.awt.event.*; public class Fengche extends JPanel implements ActionListener { static int time = 1; static int speed = 3; public int i = 0; 3
JPanel panel = new JPanel(); JLabel label1 = new JLabel("速度值"); JLabel label = new JLabel(); JButton start = new JButton("开始"); JButton stop = new JButton("停止"); JButton faster = new JButton("加速"); JButton slower = new JButton("减速"); JButton reverse = new JButton("切换旋转方向"); Timer timer = new Timer(10, this); TListener tl = new TListener(); public Fengche() { setLayout(new BorderLayout()); add(panel, BorderLayout.SOUTH); panel.add(start); panel.add(stop); panel.add(faster); panel.add(slower); panel.add(reverse); panel.add(label1); panel.add(label); start.addActionListener(new OtherListener()); stop.addActionListener(new StopListener()); faster.addActionListener(new OtherListener()); slower.addActionListener(new OtherListener()); 4
reverse.addActionListener(new OtherListener()); setPreferredSize(new Dimension(600, 400)); setBackground(Color.green); timer = new Timer(1, tl); } public void actionPerformed(ActionEvent arg0) { } class TListener implements ActionListener { public void actionPerformed(ActionEvent e) { i += speed; repaint(); } } private class StopListener implements ActionListener { public void actionPerformed(ActionEvent event) { timer.stop(); speed = 0; label.setText(Integer.toString(speed)); start.setEnabled(true); stop.setEnabled(false); faster.setEnabled(false); slower.setEnabled(false); 5
reverse.setEnabled(false); } } private class OtherListener implements ActionListener { public void actionPerformed(ActionEvent event) { if (event.getSource() == start) { timer.start(); speed = 10; label.setText(Integer.toString(speed)); } else if (event.getSource() == faster) { speed++; label.setText(Integer.toString(speed)); } else if (event.getSource() == slower) { speed--; if (speed < 1) speed = 1; label.setText(Integer.toString(speed)); } else speed = -speed; start.setEnabled(false); stop.setEnabled(true); faster.setEnabled(true); slower.setEnabled(true); reverse.setEnabled(true); 6
} } public void paintComponent(Graphics page) { super.paintComponent(page); int x = getWidth() / 2; int y = getHeight() / 2; int radius = (int) (Math.min(getWidth(), getHeight() * 0.3)); int n = x - radius; int m = y - radius; page.fillArc(n, m, 2 * radius, 2 * radius, i + 120, 50); page.setColor(Color.blue); page.fillArc(n, m, 2 * radius, 2 * radius, i + 240, 50); page.setColor(Color.red); page.fillArc(n, m, 2 * radius, 2 * radius, i + 360, 50); page.setColor(Color.pink); int x1 = 280, y1 = 200, x2 = 180, y2 = 360; int x3 = 320, y3 = y1, x4 = 420, y4 = y2; page.drawLine(x1, y1, x2, y2); page.drawLine(x3, y3, x4, y4); page.drawLine(x1, y1, x3, y1); page.drawLine(x2, y2, x4, y2); } } 7
分享到:
收藏