⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ballisticspanel_2.java

📁 本书透彻讲解了经典的《设计模式:可复用面向对象软件的基础》一书涵盖的23种基本设计模式。本书将这些设计模式分成五类:接口型模式、责任型模式、构造型模式、操作型模式
💻 JAVA
字号:
package com.oozinoz.applications;

//import com.sun.java.swing.*;
import javax.swing.*;

//import java.util.*;
import java.awt.*;


import com.oozinoz.ballistics.*;

import javax.swing.event.*;

/*
* Copyright (c) 2001 Steven J. Metsker.
* 
* Steve Metsker makes no representations or warranties about
* the fitness of this software for any particular purpose, 
* including the implied warranty of merchantability.
*
* Please use this software as you wish with the sole
* restriction that you may not claim that you wrote it.
*/
/**
 * Plot a ballistics function. This class is refactored
 * from BallisticsPanel_1 to register its interest in
 * a slider's value.
 * 
 * @author Steven J. Metsker
 */
public class BallisticsPanel_2
extends JPanel implements ChangeListener 
{
protected void paintComponent(Graphics g)
{
	super.paintComponent(g); // paint the background
	for (int i = 0; i < nPoint; i++)
	{
		double t = ((double) i) / (nPoint - 1);
		x[i] = (int) (t * getWidth());
		y[i] =
			(int) (getHeight() * (1 - func.function(t, tPeak)));
	}
	g.drawPolyline(x, y, nPoint);
}

	protected BallisticsFunction func;
	protected int nPoint = 101;
	protected double tPeak = 0.0;
	protected int[] x = new int[nPoint];
	protected int[] y = new int[nPoint];




	protected JSlider slider;

/**
 * Create a panel that can display the provided function,
 * evaluated against the value of the provided slider.
 *
 * @param func the ballistics function to plot. Ballistics
 *             functions vary with time and with the time
 *             of peak burn area.
 *
 * @param JSlider a slider to observe
 */
public BallisticsPanel_2(
	BallisticsFunction func,
	JSlider slider) {
	this.func = func;
	this.slider = slider;
	slider.addChangeListener(this);
}

/**
 * Update the label when the slider moves.
 *
 * @param e a ChangeEvent object
 */
public void stateChanged(ChangeEvent e)
{
	double val = slider.getValue();
	double max = slider.getMaximum();
	double min = slider.getMinimum();
	tPeak = (val - min) / (max - min);
	repaint();
}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -