📄 buddybar.java
字号:
package balistic;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class BuddyBar implements AdjustmentListener, ActionListener {
double barValue;
int iSlideMax;
double slideMin, slideMax;
double textMin, textMax;
Label textLabel;
TextField tField;
Scrollbar slippery;
Vector Listeners;
public BuddyBar(String message, double fMin, double fMax,double tMin,double tMax,double init)
{
String label = new String(message);
slideMin = fMin;
slideMax = fMax;
textMin = tMin;
textMax = tMax;
barValue = init;
textLabel = new Label(label);
tField = new TextField(Double.toString(barValue),12);
tField.addActionListener(this);
iSlideMax = 200;
slippery = new Scrollbar(Scrollbar.HORIZONTAL,0,10,0,iSlideMax);
slippery.addAdjustmentListener(this);
setSlide();
Listeners = new Vector(5);
}
public TextField getTextField()
{
return tField;
}
public Label getLabel()
{
return textLabel;
}
public Scrollbar getScrollbar()
{
return slippery;
}
private void changeValue()
{
for (int i = 0; i<Listeners.size(); i++) {
BuddyListener ting = (BuddyListener) Listeners.elementAt(i);
ting.buddyValueChanged(this,barValue);
}
}
public double getValue()
{
readTextField();
return barValue;
}
public void actionPerformed(ActionEvent e) {
double oldVal = barValue;
this.readTextField();
if (oldVal != barValue)
changeValue();
}
private void readTextField()
{
String s1 = tField.getText();
try {
Double dVal = new Double(s1);
double newval = dVal.doubleValue();
if (newval<textMin) {
barValue = textMin;
tField.setText(Double.toString(barValue));
} else if (newval>textMax) {
barValue = textMax;
tField.setText(Double.toString(barValue));
}
barValue = newval;
setSlide();
} catch (NumberFormatException nfe) {
tField.setText(Double.toString(barValue));
}
}
public void adjustmentValueChanged(AdjustmentEvent evt) {
int iSlideVal = evt.getValue();
barValue = slideMin+iSlideVal*(slideMax-slideMin)/iSlideMax;
tField.setText(Double.toString(barValue));
changeValue();
}
private void setSlide()
{
if (barValue<=slideMax)
slippery.setValue((int)(iSlideMax*(barValue-slideMin)/(slideMax-slideMin)));
else if (barValue>slideMax)
slippery.setValue(iSlideMax);
else if (barValue<0)
slippery.setValue(0);
}
public interface BuddyListener
{
public void buddyValueChanged(BuddyBar bbar, double val);
}
public void addBuddyListener(BuddyListener bl)
{
Listeners.addElement(bl);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -