📄 ballisticspanel_2.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 + -