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

📄 statspanel.java

📁 一个用于排队系统仿真的开源软件,有非常形象的图象仿真过程!
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
							optpanel.repaint();
							varsList.setEnabled(true);
							break;
						case 1:
							sampleDescr.setText(SAMPLING_RANDOM_DESCRITPION);
							optpanel.remove(options);
							south.setVisible(true);
							options = getRandomPanelOption();
							optpanel.add(options,BorderLayout.CENTER);
							optpanel.revalidate();
							optpanel.repaint();
							varsList.setEnabled(false);
							break;
						case 2:
							sampleDescr.setText(SAMPLING_INTERVAL_DESCRITPION);
							optpanel.remove(options);
							south.setVisible(true);
							options = getIntervalPanelOption();
							optpanel.add(options,BorderLayout.CENTER);
							optpanel.revalidate();
							optpanel.repaint();
							varsList.setEnabled(false);
							break;
						case 3:
							sampleDescr.setText(SAMPLING_FILTERING_DESCRITPION);
							optpanel.remove(options);
							south.setVisible(true);
							options = getFilteringPanelOption();
							optpanel.add(options,BorderLayout.CENTER);
							optpanel.revalidate();
							optpanel.repaint();
							varsList.setEnabled(true);
							break;
						default:
							samplingList.setSelectedIndex(0);
/*							sampleDescr.setText("");
						optpanel.remove(options);
						south.setVisible(false);
						options = new JPanel();
						optpanel.add(options,BorderLayout.CENTER);
						optpanel.revalidate();
						optpanel.repaint();*/
						}
					}
				}
			});
		}
		return samplingList;
	}
	
	/**
	 * Sets up sampling panel
	 */
	private void createSampling() {
		Box mainbox = Box.createVerticalBox();
		mainbox.add(Box.createVerticalStrut(20));
		
		Box paneldesclabel = Box.createHorizontalBox();
		Box centralpanel = Box.createHorizontalBox();
		Box warningpanl = Box.createHorizontalBox();
		
		mainbox.add(paneldesclabel);
		mainbox.add(Box.createVerticalStrut(15));
		mainbox.add(centralpanel);
		mainbox.add(Box.createVerticalStrut(15));
		mainbox.add(warningpanl);
		mainbox.add(Box.createVerticalStrut(15));
		/** Listener on trasformation per change label **/
		model.addOnChangeVariableValue(new ChangeVariableListener(){
			public void onChangeVariableValues() {
				if(varsList.getSelectedIndex() >= 0){
					switch(model.getMatrix().getVariables()[varsList.getSelectedIndex()].getType()){
					case STRING: 
						varLabel.setText(HTML_START + HTML_FONT_NORM + 
								"This is a String variable and it has been transformed has " + model.getMatrix().getVariables()[varsList.getSelectedIndex()].getTrasfStr()
								+ HTML_FONT_NOR_END + HTML_END);
						varInfo.setBorder(new TitledBorder(new TitledBorder(
								new EtchedBorder(EtchedBorder.LOWERED),model.getMatrix().getVariableNames()[varsList.getSelectedIndex()]  +" information")));
						break;
					case NUMERIC: 
						varLabel.setText(HTML_START + HTML_FONT_NORM +
								"This is a Numeric variable and it has been transformed has " + model.getMatrix().getVariables()[varsList.getSelectedIndex()].getTrasfStr()
								+ HTML_FONT_NOR_END + HTML_END);
						varInfo.setBorder(new TitledBorder(new TitledBorder(
								new EtchedBorder(EtchedBorder.LOWERED),model.getMatrix().getVariableNames()[varsList.getSelectedIndex()]  +" information")));
						break;
					case DATE: 
						varLabel.setText(HTML_START + HTML_FONT_NORM +
								"This is a Date variable and it has been transformed has " + model.getMatrix().getVariables()[varsList.getSelectedIndex()].getTrasfStr()
								+ HTML_FONT_NOR_END + HTML_END);
						varInfo.setBorder(new TitledBorder(new TitledBorder(
								new EtchedBorder(EtchedBorder.LOWERED), model.getMatrix().getVariableNames()[varsList.getSelectedIndex()]  +" information")));
						break;
					default:
					}
				}else{
					varLabel.setText(HTML_START + HTML_FONT_NORM +
							"No variable selected"
							+ HTML_FONT_NOR_END + HTML_END);
					varInfo.setBorder(new TitledBorder(new TitledBorder(
							new EtchedBorder(EtchedBorder.LOWERED), "No variable selected")));
				}
			}
		});
		/** DESCRIPTION LABEL OF PANEL **/
		JPanel jpdesclabel = new JPanel(new GridLayout(1,1));
		jpdesclabel.add(new JLabel(SAMPLING_DESCRITPION));
		paneldesclabel.add(jpdesclabel);
		/** CENTRAL PANEL **/
		JPanel jcentralp = new JPanel(new BorderLayout(10,0));
		
		optionSampling = new JPanel(new BorderLayout());
		/** VARIABLE INFORMATION PANEL **/
		varInfo.setBorder(new TitledBorder(new TitledBorder(
				new EtchedBorder(EtchedBorder.LOWERED), "No variable selected")));
		varInfo.add(varLabel);
		varLabel.setText(HTML_START + HTML_FONT_NORM +
				"No variable selected"
				+ HTML_FONT_NOR_END + HTML_END);
		varInfo.setBorder(new TitledBorder(new TitledBorder(
				new EtchedBorder(EtchedBorder.LOWERED), "No variable selected")));
		/** SAMPLING OPTION PANEL **/
		optpanel.setBorder(new TitledBorder(new TitledBorder(
				new EtchedBorder(EtchedBorder.LOWERED), "Sampling options")));
		sampleDescr = new JLabel();
		optpanel.add(sampleDescr,BorderLayout.EAST);
		optpanel.add(options,BorderLayout.CENTER);
		south = new JPanel(new FlowLayout());
		executeSam.setPreferredSize(new Dimension((int)(BUTTONSIZE*3.5),(int)(BUTTONSIZE*0.8)));
		undoSam.setPreferredSize(new Dimension((int)(BUTTONSIZE*3.5),(int)(BUTTONSIZE*0.8)));
		south.add(executeSam);
		south.add(undoSam);
		executeSam.setEnabled(false);
		undoSam.setEnabled(false);
		south.setVisible(false);
		optpanel.add(south,BorderLayout.SOUTH);
		
		
		optionSampling.add(varInfo,BorderLayout.NORTH);
		optionSampling.add(optpanel,BorderLayout.CENTER);
		/** LISTS **/
		JPanel jlistpanel = new JPanel(new GridLayout(1,2,10,5));
		JPanel varpanel = new JPanel(new BorderLayout());
		JPanel samppanel = new JPanel(new BorderLayout());
		
		varpanel.add(new JLabel(HTML_START + HTML_FONT_TITLE + "Variables" + HTML_FONT_TIT_END + HTML_END),BorderLayout.NORTH);
		varpanel.add(new JScrollPane(getVariableList(),JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED),BorderLayout.CENTER);
		samppanel.add(new JLabel(HTML_START + HTML_FONT_TITLE+ "Sampling methods" + HTML_FONT_TIT_END + HTML_END),BorderLayout.NORTH);
		samppanel.add(new JScrollPane(getSamplingList(),JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED),BorderLayout.CENTER);
		
		//jlistpanel.add(varpanel);
		jlistpanel.add(samppanel);
		jlistpanel.add(varpanel);
		
		jcentralp.add(jlistpanel,BorderLayout.WEST);
		jcentralp.add(optionSampling,BorderLayout.CENTER);
		centralpanel.add(Box.createHorizontalStrut(10));
		centralpanel.add(jcentralp);
		centralpanel.add(Box.createHorizontalStrut(10));
		/** WARNING LABEL **/
		JPanel jpwarning = new JPanel(new GridLayout(1,1));
		jpwarning.add(new JLabel(SAMPLING_TRIMMING_PANEL_DESC));
		warningpanl.add(jpwarning);
		
		samplePanel.add(mainbox);
		mainbox.add(Box.createVerticalStrut(20));
	}

	/**
	 * Sets up dispersion matrix panel
	 */
	private void createMatrix() {
		Box mainBox = Box.createVerticalBox();
		Box descBox = Box.createHorizontalBox();
		Box tableBox = Box.createHorizontalBox();

		scatterMatrixPanel.add(mainBox);

		mainBox.add(Box.createVerticalStrut(10));
		mainBox.add(descBox);
		mainBox.add(Box.createVerticalStrut(10));
		mainBox.add(tableBox);
		mainBox.add(Box.createVerticalStrut(10));

		descBox.add(new JLabel(MATRIX_DESCRIPTION));
		dispPanel = new DispMatrix();
		tableBox.add(dispPanel);
	}

	/** ************ Univariate panel ************************* */
	private JWatUnivariateStatsTable variableTable = null;
	private JWatUnivariateStatsTableModel variableModel = null;
	private JScrollPane scrollTablePane = null;
	private JComboBox transfs;
	private JPanel transfPanel;
	private JPanel mainTransf;
	private JPanel blankPanel;
	private JLabel transfList;
	
	private QQPlotPreviewPanel graph1 = null;

	
	/**
	 * Create univariate panel
	 * 
	 * @return
	 */
	private JPanel transfGraphCreate() {
		JPanel totalPanel = new JPanel(new GridLayout(1, 2));
		mainTransf = new JPanel(new GridLayout(1,1));
		transfPanel = new JPanel(new BorderLayout());
		help.addHelp(transfPanel,TRANSF_PANEL);
		JPanel graphPanel = new JPanel(new GridLayout(1, 1));
		/** ************** Transformation Panel ********************* */
		transfPanel.setBorder(new TitledBorder(new EtchedBorder(
				EtchedBorder.LOWERED), TRANSF_BORDER_TEXT + "none"));
		createComboTransf();
		JPanel northPanel = new JPanel(new GridLayout(2, 2, 5, 50));
		JLabel tr = new JLabel("Transformations:");
		tr.setHorizontalAlignment(JLabel.RIGHT);
		northPanel.add(tr);
		northPanel.add(transfs);
		transfPanel.add(northPanel, BorderLayout.NORTH);
		// JPanel centerTransf = new JPanel(new GridLayout(1,2,5,0));
		northPanel.add(new JButton(applyTranformation));
		northPanel.add(new JButton(undoTranformation));
		transfList = new JLabel(TRANSF_LABEL_APPLIED + "none = none ");
		transfPanel.add(transfList, BorderLayout.CENTER);
		/** ******************* Graph Panel ************************** */
		// TODO: aggiungere i grafici corretti che si zoommano e allargano
		graphPanel.setBorder(new TitledBorder(new EtchedBorder(
				EtchedBorder.LOWERED), "Graphs"));
		JTabbedPane graphsTabbed = new JTabbedPane();
		JPanel graph = new JPanel();
		plo = new SmallPlotDistGraph(model);
		plo.setSize(new Dimension(330, 120));
		graph.add(plo);
		graphsTabbed.addTab("Frequencies", graph);
		graph1 = new QQPlotPreviewPanel(model);
		graph1.setSize(new Dimension(330, 120));
		graphsTabbed.addTab("QQ-Plot", graph1);
		graphPanel.add(graphsTabbed);
		//Blank panel
		blankPanel = new JPanel(new BorderLayout());
		blankPanel.add(new JLabel(HTML_START + HTML_FONT_NORM + " This variable could not be transformed since it is not numeric ." + HTML_FONT_NOR_END + HTML_END));
		blankPanel.setBorder(new TitledBorder(new EtchedBorder(
				EtchedBorder.LOWERED), ""));
		// Add to main panel transformation and graph
		mainTransf.add(transfPanel);
		totalPanel.add(mainTransf);
		
		totalPanel.add(graphPanel);
		return totalPanel;
	}

	private void createComboTransf() {
		transfs = new JComboBox();
		transfs.setToolTipText(TRANSF_COMBO);
		transfs.addItem("Logarithmic");
		transfs.addItem("Mix - Max");
		transfs.addItem("Standard Deviation");
	}

	private JScrollPane getScrollPaneTable() {
		if (scrollTablePane == null) {
			createTable();
			scrollTablePane = new JScrollPane(variableTable,
					JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
					JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
		}
		return scrollTablePane;
	}

	private JWatUnivariateStatsTable createTable() {
		if (variableTable == null) {
			variableTable = new JWatUnivariateStatsTable(model);
			variableTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
			variableTable.setToolTipText(STATS_TABLE);
			help.addHelp(variableTable,STATS_TABLE);
			variableTable.setPlotFreq(plo);	
			variableTable.setPlotQQPlot(graph1);
			variableTable.setLabel(transfList);
			variableTable.setPanel(transfPanel);
			variableTable.setShowGrid(true);
			variableTable.setModel(getModel());
			variableTable.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
				public void valueChanged(ListSelectionEvent e) {
					if(variableTable.getSelectedRow() >= 0){
						mainTransf.removeAll();
						switch(model.getMatrix().getVariables()[variableTable.getSelectedRow()].getType()){
						case VariableNumber.NUMERIC:
							mainTransf.add(transfPanel);
							break;
						case VariableNumber.DATE:
							blankPanel.setBorder(new TitledBorder(new EtchedBorder(
									EtchedBorder.LOWERED),TRANSF_BORDER_TEXT + model.getMatrix().getVariables()
									[(variableTable.getSelectedRow())].getName() + " - Type: Date"));
							mainTransf.add(blankPanel);
							break;
						case VariableNumber.STRING:
							blankPanel.setBorder(new TitledBorder(new EtchedBorder(
									EtchedBorder.LOWERED),TRANSF_BORDER_TEXT + model.getMatrix().getVariables()
									[(variableTable.getSelectedRow())].getName() + " - Type: String"));
							mainTransf.add(blankPanel);

⌨️ 快捷键说明

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