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

📄 playerpanel.java

📁 一个非常有意思,并且带图像的语音项目,能读出相应的英文,并有口型
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*******************************************************************************
 * Copyright (c) 2004 Berthold Daum. All rights reserved. This program and the
 * accompanying materials are made available under the terms of the Common
 * Public License v1.0 which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/cpl-v10.html
 * 
 * Contributors: Berthold Daum
 ******************************************************************************/
package com.bdaum.dukeSpeaks;

import java.awt.GridLayout;

import javax.swing.JPanel;

/**
 * @author Berthold Daum
 *
 * Creation date: 17.12.2003
 * 
 */
public class PlayerPanel {
	
	// The data model
	private PlayerModel playerModel;
	// The JPanel instance for the face
	private JPanel face;

	
	private javax.swing.JPanel contentPane = null;
	private javax.swing.JPanel controlAreaPane = null;
	private javax.swing.JPanel leftSlidersPanel = null;
	private javax.swing.JPanel centerPanel = null;
	private javax.swing.JPanel rightSlidersPanel = null;
	private javax.swing.JPanel volumePanel = null;
	private javax.swing.JLabel volumeLabel = null;
	private javax.swing.JSlider volumeSlider = null;
	private javax.swing.JPanel speedPanel = null;
	private javax.swing.JLabel speedLabel = null;
	private javax.swing.JSlider speedSlider = null;
	private javax.swing.JPanel pitchPanel = null;
	private javax.swing.JLabel pitchLabel = null;
	private javax.swing.JSlider pitchSlider = null;
	private javax.swing.JPanel rangePanel = null;
	private javax.swing.JLabel rangeLabel = null;
	private javax.swing.JSlider rangeSlider = null;
	private javax.swing.JPanel textAndButtonPanel = null;
	private javax.swing.JLabel textAreaLabel = null;
	private javax.swing.JPanel buttonPanel = null;
	private javax.swing.JButton speakButton = null;
	private javax.swing.JButton deleteButton = null;
	private javax.swing.JTextArea textInputArea = null;
	private javax.swing.JLabel jLabel5 = null;
	private javax.swing.JLabel jLabel6 = null;
	/**
	 * 
	 */
	public PlayerPanel(PlayerModel playerModel, JPanel face) {
		super();
		// Save parameters into fields
		this.playerModel = playerModel;
		this.face = face;
	}
	
	/**
	 * Method updateSliders.
	 * updates all the sliders with values from the PlayerModel.
	 */
	private void updateSliders() {
		// Volume
		int volume = (int) playerModel.getVolume();
		if (volume >= 0) 
			volumeSlider.setValue(volume);
		// Speed
		int rate = (int) playerModel.getSpeakingRate();
		if (rate >= 0) 
			speedSlider.setValue(rate);
		// Pitch
		int pitch = (int) playerModel.getPitch();
		if (pitch >= 0) 
			pitchSlider.setValue(pitch);
		// Variation
		int range = (int) playerModel.getRange();
		if (range >= 0) 
			rangeSlider.setValue(range);
	}


	
	public javax.swing.JPanel getContentPane() {
		if(contentPane == null) {
			contentPane = new javax.swing.JPanel();
			contentPane.setLayout(new java.awt.BorderLayout());
			contentPane.add(getControlAreaPane(), java.awt.BorderLayout.CENTER);
			contentPane.add(getTextAndButtonPanel(), java.awt.BorderLayout.SOUTH);
			contentPane.setSize(new java.awt.Dimension(600,500));
			volumeLabel.setLabelFor(volumeSlider);
			speedLabel.setLabelFor(speedSlider);
			pitchLabel.setLabelFor(pitchSlider);
			rangeLabel.setLabelFor(rangeSlider);
			textAreaLabel.setLabelFor(textInputArea);
			updateSliders();
		}
		return contentPane;
	}
	/**
	 * This method initializes controlAreaPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private javax.swing.JPanel getControlAreaPane() {
		if(controlAreaPane == null) {
			controlAreaPane = new javax.swing.JPanel();
			controlAreaPane.setLayout(new GridLayout(1, 3));
			controlAreaPane.add(getLeftSlidersPanel());
			controlAreaPane.add(getCenterPanel());
			controlAreaPane.add(getRightSlidersPanel());
		}
		return controlAreaPane;
	}
	/**
	 * This method initializes leftSlidersPanel
	 * 
	 * @return javax.swing.JPanel
	 */
	private javax.swing.JPanel getLeftSlidersPanel() {
		if(leftSlidersPanel == null) {
			leftSlidersPanel = new javax.swing.JPanel();
			leftSlidersPanel.setLayout(new java.awt.GridLayout(1,3));
			leftSlidersPanel.add(getVolumePanel());
			leftSlidersPanel.add(getSpeedPanel());
			leftSlidersPanel.add(getJLabel5(), null);
		}
		return leftSlidersPanel;
	}
	/**
	 * This method initializes centerPanel
	 * 
	 * @return javax.swing.JPanel
	 */
	private javax.swing.JPanel getCenterPanel() {
		if(centerPanel == null) {
			centerPanel = new javax.swing.JPanel();
			centerPanel.setLayout(new java.awt.GridLayout(1,1));
			centerPanel.add(face);
		}
		return centerPanel;
	}
	/**
	 * This method initializes rightSlidersPanel
	 * 
	 * @return javax.swing.JPanel
	 */
	private javax.swing.JPanel getRightSlidersPanel() {
		if(rightSlidersPanel == null) {
			rightSlidersPanel = new javax.swing.JPanel();
			java.awt.GridLayout layGridLayout1 = new java.awt.GridLayout(1, 2);
			layGridLayout1.setColumns(3);
			rightSlidersPanel.setLayout(layGridLayout1);
			rightSlidersPanel.add(getJLabel6(), null);
			rightSlidersPanel.add(getPitchPanel());
			rightSlidersPanel.add(getRangePanel());
		}
		return rightSlidersPanel;
	}
	/**
	 * This method initializes volumePanel
	 * 
	 * @return javax.swing.JPanel
	 */
	private javax.swing.JPanel getVolumePanel() {
		if(volumePanel == null) {
			volumePanel = new javax.swing.JPanel();
			volumePanel.setLayout(new java.awt.BorderLayout());
			volumePanel.add(getVolumeLabel(), java.awt.BorderLayout.NORTH);
			volumePanel.add(getVolumeSlider(), java.awt.BorderLayout.CENTER);
		}
		return volumePanel;
	}
	/**
	 * This method initializes volumeLabel
	 * 
	 * @return javax.swing.JLabel
	 */
	private javax.swing.JLabel getVolumeLabel() {
		if(volumeLabel == null) {
			volumeLabel = new javax.swing.JLabel();
			volumeLabel.setText("Volume");
			volumeLabel.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
			volumeLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
			volumeLabel.setDisplayedMnemonic(java.awt.event.KeyEvent.VK_V);
		}
		return volumeLabel;
	}
	/**
	 * This method initializes volumeSlider
	 * 
	 * @return javax.swing.JSlider
	 */
	private javax.swing.JSlider getVolumeSlider() {
		if(volumeSlider == null) {
			volumeSlider = new javax.swing.JSlider();
			volumeSlider.putClientProperty("JSlider.isFilled", Boolean.TRUE);
			volumeSlider.setMaximum(10);
			volumeSlider.setMinorTickSpacing(1);
			volumeSlider.setMajorTickSpacing(5);
			volumeSlider.setOrientation(javax.swing.JSlider.VERTICAL);
			volumeSlider.setToolTipText("Volume");
			volumeSlider.setPaintLabels(true);
			volumeSlider.setPaintTicks(true);
			volumeSlider.addChangeListener(new javax.swing.event.ChangeListener() { 
				public void stateChanged(javax.swing.event.ChangeEvent e) {    
					playerModel.setVolume((float) volumeSlider.getValue());
				}
			});
		}
		return volumeSlider;
	}
	/**
	 * This method initializes speedPanel
	 * 
	 * @return javax.swing.JPanel
	 */
	private javax.swing.JPanel getSpeedPanel() {
		if(speedPanel == null) {
			speedPanel = new javax.swing.JPanel();
			speedPanel.setLayout(new java.awt.BorderLayout());
			speedPanel.add(getSpeedLabel(), java.awt.BorderLayout.NORTH);
			speedPanel.add(getSpeedSlider(), java.awt.BorderLayout.CENTER);
		}
		return speedPanel;
	}
	/**
	 * This method initializes speedLabel
	 * 
	 * @return javax.swing.JLabel
	 */
	private javax.swing.JLabel getSpeedLabel() {
		if(speedLabel == null) {
			speedLabel = new javax.swing.JLabel();
			speedLabel.setText("Words/min");
			speedLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
			speedLabel.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
			speedLabel.setDisplayedMnemonic(java.awt.event.KeyEvent.VK_W);
		}
		return speedLabel;
	}
	/**
	 * This method initializes speedSlider
	 * 
	 * @return javax.swing.JSlider
	 */

⌨️ 快捷键说明

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