📄 inputdefaultdata.java
字号:
import com.ms.wfc.app.*;
import com.ms.wfc.core.*;
import com.ms.wfc.ui.*;
public class inputdefaultdata extends Form{
public inputdefaultdata(){
initForm();
this.datalist.setSelectedIndex(0);
}
//定义变量
public int max;//最多允许输入的点数
public double data[];//存放定义后的数据;注意:从序号为1的位置开始定义
public int period=64;//一个周期的点数
public float periodnum=2;//输入多少个周期
private void edit1_textChanged(Object source, Event e)
//输入周期点数时不允许输入非法字符(只能是整数),同时更新显示总的点数
{
try{
period=Math.abs(Integer.parseInt(edit1.getText()));
periodnum=Math.abs(Float.valueOf(edit2.getText()).floatValue());
this.showtotalnum.setText(String.valueOf((int)(period*periodnum)));
this.yesButton.setEnabled(true);
if((int)(period*periodnum)<2)this.yesButton.setEnabled(false);
if((int)(period*periodnum)>max){
MessageBox.show("你输入的数据太大!最多只允许输入"+max+"个数据点。","警告!",MessageBox.OK+MessageBox.ICONWARNING);
this.edit1.setText(String.valueOf((int)(max/periodnum)));
period=Integer.parseInt(edit1.getText());
}
}catch(NumberFormatException ee){
//if(edit1.getText().equals(null)==false)
this.yesButton.setEnabled(false);
this.showtotalnum.setText("???");
//MessageBox.show("你输入了非法字符,请检查后重新输入!\n注意:周期点数只能输入整数,周期数只能输入浮点数。","警告!",MessageBox.OK+MessageBox.ICONWARNING);
}
}
private void edit2_textChanged(Object source, Event e)
{
try{
period=Math.abs(Integer.parseInt(edit1.getText()));
periodnum=Math.abs(Float.valueOf(edit2.getText()).floatValue());
this.showtotalnum.setText(String.valueOf((int)(period*periodnum)));
this.yesButton.setEnabled(true);
if((int)(period*periodnum)<2)this.yesButton.setEnabled(false);
if((int)(period*periodnum)>max){
MessageBox.show("你输入的数据太大!最多只允许输入"+max+"个数据点。","警告!",MessageBox.OK+MessageBox.ICONWARNING);
this.edit2.setText(String.valueOf(max/period));
periodnum=Float.valueOf(edit2.getText()).floatValue();
}
}catch(NumberFormatException ee){
//if(edit2.getText().equals(null)==false)
this.yesButton.setEnabled(false);
this.showtotalnum.setText("???");
//MessageBox.show("你输入了非法字符,请检查后重新输入!\n注意:周期点数只能输入整数,周期数只能输入浮点数。","警告!",MessageBox.OK+MessageBox.ICONWARNING);
}
}
private void yesButton_click(Object source, Event e)//点击确认按钮后初始化数据
{
//System.out.println("dgfipnsapgseg");
//数据初始化(参数:波形种类,序列点数,周期点数)//输入波形数据初始化//wavetype=0:正弦波//wavetype=1:余弦波//wavetype=2:正弦周期全波//wavetype=3:余弦周期全波//wavetype=4:正弦周期半波//wavetype=5:余弦周期半波//wavetype=6:指数衰减正弦波//wavetype=7:指数衰减余弦波//wavetype=8:矩形波//wavetype=9:方波//wavetype=10:三角波//wavetype=11:三角波(无直流)//wavetype=12:锯齿波//wavetype=13:锯齿波(无直流)//wavetype=14:阶跃信号//wavetype=15:单位冲击信号int i;data=new double[(int)(period*periodnum)+1];int num=(int)(period*periodnum);double emptyrate=0.01*this.trackBar.getValue();
switch(datalist.getSelectedIndex()){
case 0://正弦波 for(i=1;i<=num;i++) data[i]=Math.sin(2*Math.PI*((i-1)%period)/period); break;case 1://余弦波
for(i=1;i<=num;i++) data[i]=Math.cos(2*Math.PI*((i-1)%period)/period); break;case 2://正弦周期全波
for(i=1;i<=num;i++) data[i]=Math.sin(Math.PI*((i-1)%period)/period); break;
case 3://余弦周期全波
for(i=1;i<=num;i++) data[i]=Math.abs(Math.cos(Math.PI*((i-1)%period)/period)); break;case 4://正弦周期半波
for(i=1;i<=num;i++){ if((i-1)%period<=period/2) data[i]=Math.sin(2*Math.PI*((i-1)%period)/period); else data[i]=0;} break;case 5://余弦周期半波
for(i=1;i<=num;i++){ if((i-1)%period<=period/4||(i-1)%period>=3*period/4) data[i]=Math.cos(2*Math.PI*((i-1)%period)/period); else data[i]=0;} break;case 6://指数衰减正弦波
for(i=1;i<=num;i++) data[i]=Math.exp(-0.05*(i-1))*Math.sin(2*Math.PI*((i-1)%period)/period); break;case 7://指数衰减余弦波
for(i=1;i<=num;i++) data[i]=Math.exp(-0.05*(i-1))*Math.cos(2*Math.PI*((i-1)%period)/period); break;case 8://矩形波
for(i=1;i<=num;i++){ if((i-1)%period<=(int)(emptyrate*period)) data[i]=1; else data[i]=0;} break;case 9://方波
for(i=1;i<=num;i++){ if((i-1)%period<(int)(emptyrate*period)) data[i]=1; else data[i]=-1;} break;case 10://三角波
for(i=1;i<=num;i++){ if((i-1)%period<=period/2) data[i]=((i-1)%period)/(double)(period/2); else data[i]=(period-(i-1)%period)/(double)(period/2); } break;case 11://三角波(无直流)
for(i=1;i<=num;i++){ if((i-1)%period<=period/2) data[i]=2*((i-1)%period)/(double)(period/2)-1; else data[i]=2*(period-(i-1)%period)/(double)(period/2)-1;} break;case 12://锯齿波
for(i=1;i<=num;i++) data[i]=((i-1)%period)/(double)(period); break;case 13://锯齿波(无直流)
for(i=1;i<=num;i++) data[i]=2*((i-1)%period)/(double)(period)-1; break;case 14://阶跃信号
for(i=1;i<=num;i++) data[i]=1; break;case 15://单位冲击信号
for(i=1;i<=num;i++){ if(i==1)data[i]=1;
else data[i]=0;} break;
}//datainit() over!!
}
private void trackBar_valueChanged(Object source, Event e)
{
label5.setText(String.valueOf((float)(0.01*this.trackBar.getValue())));
}
private void datalist_selectedIndexChanged(Object source, Event e)//选择波形
{
if(datalist.getSelectedIndex()==8||datalist.getSelectedIndex()==9){
this.label4.setEnabled(true);
this.label5.setEnabled(true);
this.trackBar.setEnabled(true);
}
else {
this.label4.setEnabled(false);
this.label5.setEnabled(false);
this.trackBar.setEnabled(false);}
}
Container components = new Container();
Button yesButton = new Button();
Button cancelButton = new Button();
GroupBox groupBox1 = new GroupBox();
ListBox datalist = new ListBox();
GroupBox groupBox2 = new GroupBox();
Label label1 = new Label();
Label label2 = new Label();
Edit edit1 = new Edit();
Edit edit2 = new Edit();
Label label3 = new Label();
Label showtotalnum = new Label();
Label label4 = new Label();
TrackBar trackBar = new TrackBar();
Label label5 = new Label();
private void initForm()
{
// NOTE: This form is storing resource information in an
// external file. Do not modify the string parameter to any
// resources.getObject() function call. For example, do not
// modify "foo1_location" in the following line of code
// even if the name of the Foo object changes:
// foo1.setLocation((Point)resources.getObject("foo1_location"));
IResourceManager resources = new ResourceManager(this, "inputdefaultdata");
yesButton.setLocation(new Point(40, 208));
yesButton.setSize(new Point(80, 24));
yesButton.setTabIndex(0);
yesButton.setText("确定");
yesButton.setDialogResult(DialogResult.YES);
yesButton.addOnClick(new EventHandler(this.yesButton_click));
cancelButton.setLocation(new Point(272, 208));
cancelButton.setSize(new Point(80, 24));
cancelButton.setTabIndex(1);
cancelButton.setText("取消");
cancelButton.setDialogResult(DialogResult.CANCEL);
this.setText("输入典型序列");
this.setAutoScaleBaseSize(new Point(6, 12));
this.setBorderStyle(FormBorderStyle.FIXED_DIALOG);
this.setCancelButton(cancelButton);
this.setClientSize(new Point(391, 238));
this.setIcon((Icon)resources.getObject("this_icon"));
this.setMaximizeBox(false);
this.setMinimizeBox(false);
this.setStartPosition(FormStartPosition.CENTER_SCREEN);
groupBox1.setLocation(new Point(8, 16));
groupBox1.setSize(new Point(168, 176));
groupBox1.setTabIndex(2);
groupBox1.setTabStop(false);
groupBox1.setText("请你选择输入序列");
datalist.setLocation(new Point(16, 24));
datalist.setSize(new Point(136, 136));
datalist.setTabIndex(0);
datalist.setText("listBox1");
datalist.setUseTabStops(true);
datalist.setItems(new Object[] {
"正弦波",
"余弦波",
"正弦周期全波",
"余弦周期全波",
"正弦周期半波",
"余弦周期半波",
"指数衰减正弦波",
"指数衰减余弦波",
"矩形波",
"方波",
"三角波",
"三角波(无直流)",
"锯齿波",
"锯齿波(无直流)",
"阶跃信号",
"单位冲击信号"});
datalist.addOnSelectedIndexChanged(new EventHandler(this.datalist_selectedIndexChanged));
groupBox2.setLocation(new Point(184, 16));
groupBox2.setSize(new Point(200, 176));
groupBox2.setTabIndex(3);
groupBox2.setTabStop(false);
groupBox2.setText("设置");
label1.setLocation(new Point(8, 24));
label1.setSize(new Point(96, 16));
label1.setTabIndex(0);
label1.setTabStop(false);
label1.setText("一个周期的点数");
label2.setLocation(new Point(8, 56));
label2.setSize(new Point(72, 16));
label2.setTabIndex(1);
label2.setTabStop(false);
label2.setText("输入周期数");
edit1.setLocation(new Point(112, 16));
edit1.setSize(new Point(64, 19));
edit1.setTabIndex(2);
edit1.setText("64");
edit1.addOnTextChanged(new EventHandler(this.edit1_textChanged));
edit2.setLocation(new Point(112, 48));
edit2.setSize(new Point(64, 19));
edit2.setTabIndex(3);
edit2.setText("2");
edit2.addOnTextChanged(new EventHandler(this.edit2_textChanged));
label3.setLocation(new Point(8, 152));
label3.setSize(new Point(104, 16));
label3.setTabIndex(4);
label3.setTabStop(false);
label3.setText("输入序列总点数:");
showtotalnum.setLocation(new Point(128, 152));
showtotalnum.setSize(new Point(48, 16));
showtotalnum.setTabIndex(5);
showtotalnum.setTabStop(false);
showtotalnum.setText("128");
label4.setEnabled(false);
label4.setLocation(new Point(8, 104));
label4.setSize(new Point(48, 16));
label4.setTabIndex(6);
label4.setTabStop(false);
label4.setText("占空比");
trackBar.setEnabled(false);
trackBar.setLocation(new Point(56, 96));
trackBar.setSize(new Point(96, 42));
trackBar.setTabIndex(7);
trackBar.setText("trackBar1");
trackBar.setAutoSize(false);
trackBar.setMaximum(100);
trackBar.setValue(50);
trackBar.setTickFrequency(10);
trackBar.addOnValueChanged(new EventHandler(this.trackBar_valueChanged));
label5.setEnabled(false);
label5.setLocation(new Point(160, 104));
label5.setSize(new Point(32, 16));
label5.setTabIndex(8);
label5.setTabStop(false);
label5.setText("0.5");
this.setNewControls(new Control[] {
groupBox2,
groupBox1,
cancelButton,
yesButton});
groupBox1.setNewControls(new Control[] {
datalist});
groupBox2.setNewControls(new Control[] {
label5,
trackBar,
label4,
showtotalnum,
label3,
edit2,
edit1,
label2,
label1});
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -