package work_Java;
import java.io.File;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.regex.Pattern;
import java.text.DecimalFormat;
class CoursePro{
public CoursePro(){
@SuppressWarnings("unused")
BasicInterface b=new BasicInterface();
}
}
class BasicInterface {
///////////////////////Appearance窗口/////////////////////////////////
JFrame f=new JFrame("Appearance");
@SuppressWarnings("rawtypes")
JComboBox jcb1=null;
@SuppressWarnings("rawtypes")
JComboBox jcb2=null;
@SuppressWarnings("rawtypes")
JComboBox jcb3=null;
JLabel backGround=new JLabel("背景:");
JLabel typeFace=new JLabel("字体:");
JLabel scale=new JLabel("大小:");
JButton sure=new JButton("OK");
JButton cancel=new JButton("Cancel");
String[] backGround1={"Default","Night Mode","Daytime Mode"};
String[] typeFace1={"Default","Boldface","Song typeFace"};
String[] scale1={"Default","Larger","Smaller"};
//////////////////////Contrast对比窗口/////////////////////////////
JFrame comparison = new JFrame("波形对比");
CardLayout cardmjpanel =new CardLayout(5,5);
MyJPanel mjpanel = new MyJPanel(cardmjpanel);
MyJPanel mtimewave =new MyJPanel_timewave("t","S1(t)");
MyJPanel mtimewave_bpsk =new MyJPanel_timewave_BPSK("t","S2(t)");
MyJPanel mpow =new MyJPanel_pow("f(MHz)","功率谱密度(dB/MHz)");
MyJPanel mautocorrelativeFunction =new MyJPanel_autocorrelativeFunction("Delay","自相关系数");
MyJPanel memlp = new MyJPanel_EMLP("Multipath Delay(ns)","码跟踪误差(m)");
MyJPanel mmultipath =new MyJPanel_much_EMLP();
ContrastForm mform =new ContrastForm();
MyJPanel msuibian=new MyJPanel_EMLP_Delay("Early-Late Spacing(ns)","码跟踪误差(m)");
JButton savecontrast = new JButton("保存");
//////////////////////////主窗口及其组件初始化/////////////////////////////////
JFrame frame=new JFrame("CourseProject");
Dimension di= Toolkit.getDefaultToolkit().getScreenSize();
Container cont =frame.getContentPane();
JMenuBar menuBar=new JMenuBar();
JMenu menuFile= new JMenu("文件");
JMenu menuEdit= new JMenu("编辑");
JMenu menuPaint= new JMenu("绘制");
JMenu menuHelp= new JMenu("帮助");
JMenuItem newItem=new JMenuItem("新建",new ImageIcon("g:"+File.separator+"CourseProject"
+File.separator+"Picture"+File.separator+"new.png"));
JMenuItem openItem=new JMenuItem("打开",new ImageIcon("g:"+File.separator+"CourseProject"
+File.separator+"Picture"+File.separator+"open.png"));
JMenuItem saveItem=new JMenuItem("保存",new ImageIcon("g:"+File.separator+"CourseProject"
+File.separator+"Picture"+File.separator+"save.png"));
JMenuItem appearance=new JMenuItem("界面设置");
JMenuItem run=new JMenuItem("运行");
JMenuItem explain=new JMenuItem("使用说明");
JPanel bpsk=new JPanel();
JPanel boc=new JPanel();
CardLayout cardboc=new CardLayout(7,7);
JPanel bocpanel=new JPanel(cardboc);
MyJPanel bocpanelone=new MyJPanel_timewave("t","S1(t)");
JLabel boclabelone=new JLabel("BOC调制的GNSS信号的时域波形");
MyJPanel bocpaneltwo=new MyJPanel_pow("f(MHz)","功率谱密度(dB/MHz)");
JLabel boclabeltwo=new JLabel("BOC调制的GNSS信号的频谱");
MyJPanel bocpanelthree=new MyJPanel_autocorrelativeFunction("Delay(microseconds)","自相关系数");
JLabel boclabelthree=new JLabel("BOC调制的GNSS信号的自相关函数图");
MyJPanel bocpanelfour=new MyJPanel_much_EMLP();
JLabel boclabelfour=new JLabel("多径对BOC调制信号码跟踪精度的影响");
MyJPanel bocpanelfive=new MyJPanel_EMLP("C/N0(dB-Hz)","码跟踪误差(m)");
JLabel boclabelfive=new JLabel("BOC调制信号接收机非相干超前——滞后处理法特性");
BocForm bocpanelsix=new BocForm();
JLabel boclabelsix=new JLabel("GNSS常用信号特性表格");
MyJPanel bocpanelseven=new MyJPanel_EMLP_Delay("Early-Late Spacing(ns)","码跟踪误差(m)");
JLabel boclabelseven=new JLabel("BOC码跟踪精度仿真对比");
CardLayout cardbpsk=new CardLayout(7,7);
JPanel bpskpanel=new JPanel(cardbpsk);
MyJPanel bpskpanelone=new MyJPanel_timewave_BPSK("t","S2(t)");
JLabel bpsklabelone=new JLabel("BPSK调制的GNSS信号的时域波形");
MyJPanel bpskpaneltwo=new MyJPanel_pow("f(MHz)","功率谱密度(dB/MHz)");
JLabel bpsklabeltwo=new JLabel("BPSK调制的GNSS信号的频谱");
MyJPanel bpskpanelthree=new MyJPanel_autocorrelativeFunction("Delay(microseconds)","自相关系数");
JLabel bpsklabelthree=new JLabel("BPSK调制的GNSS信号的自相关函数图");
MyJPanel bpskpanelfour=new MyJPanel_much_EMLP();
JLabel bpsklabelfour=new JLabel("多径对BPSK调制信号码跟踪精度的影响");
MyJPanel bpskpanelfive=new MyJPanel_EMLP("C/N0(dB-Hz)","码跟踪误差(m)");
JLabel bpsklabelfive=new JLabel("BPSK调制信号接收机非相干超前——滞后处理法特性");
BpskForm bpskpanelsix=new BpskForm();
JLabel bpsklabelsix=new JLabel("GNSS常用信号特性表格");
MyJPanel bpskpanelseven=new MyJPanel_EMLP_Delay("Early-Late Spacing(ns)","码跟踪误差(m)");
JLabel bpsklabelseven=new JLabel("BPSK码跟踪精度仿真对比");
JTabbedPane tabbedPane=new JTabbedPane();
String[] bocpictures={"时域波形","频谱","自相关系数","多径对BOC调制信号码跟踪精度的影响"
,"BOC调制信号接收机非相干超前——滞后处理法特性","GNSS常用信号特性表格","BOC码跟踪精度仿真对比"};
JComboBox<String> jboc=new JComboBox<String>(bocpictures);
String[] bpskpictures={"时域波形","频谱","自相关系数","多径对BPSK调制信号码跟踪精度的影响"
,"BPSK调制信号接收机非相干超前——滞后处理法特性","GNSS常用信号特性表格","BPSK码跟踪精度仿真对比"};
JComboBox<String> jbpsk=new JComboBox<String>(bpskpictures);
JLabel inputcanshu=new JLabel("Input: ");
JLabel outputcanshu=new JLabel("Output: ");
JLabel symbol = new JLabel("码元符号");
JTextField symboltext = new JTextField();
JLabel exboc =new JLabel("(例如:1,-1,-1,1,...)");
JLabel Bl=new JLabel("BL= ");
JTextField Bltext=new JTextField();
JLabel blunit = new JLabel("Hz");
JLabel Tcoh=new JLabel("Tcoh= ");
JTextField Tcohtext=new JTextField();
JLabel tcohunit =new JLabel("s");
JLabel βr=new JLabel("βr= ");
JTextField βrtext=new JTextField();
JLabel βrunit =new JLabel("Hz");
JLabel d=new JLabel("d(C/N0)=");
JTextField dtext=new JTextField();
JLabel dunit =new JLabel("s(dB)");
JButton Simulation=new JButton("码跟踪精度-C/N0");
JButton TimeWave=new JButton("时域波形");//生成时域波形
JButton Gboc=new JButton("频谱");//生成频谱
JButton Rτ=new JButton("自相关函数");//生成自相关函数
JButton multipath =new JButton("多径影响");
JButton clear=new JButton("清除");
JButton formboc=new JButton("表格");
JButton caculateboc=new JButton("计算");
JButton suibian=new JButton("码跟踪精度-D");
JButton contrastboc =new JButton("对比");
JLabel Fs=new JLabel("fs= ");
JTextField Fstext=new JTextField();
JLabel fsunit =new JLabel("*f0");
JLabel Fc=new JLabel("fc= ");
JTextField Fctext=new JTextField();
JLabel fcunit =new JLabel("*f0");
JLabel f0unit =new JLabel("(f0=1.023MHz)");
////////四个重要参数/////////
JLabel λ=new JLabel("λ= ");
JTextField λtext=new JTextField();
JLabel λunit =new JLabel("dB");
JLabel βrms=new JLabel("βrms= ");
JTextField βrmstext=new JTextField();
JLabel βrmsunit =new JLabel("Hz");
JLabel Kis=new JLabel("Kis= ");
JTextField Kistext=new JTextField();
JLabel kisunit =new JLabe