?? playerpanel.java
字號(hào):
/*******************************************************************************
* 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.dukeSpeake;
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
*/
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -