Created
October 22, 2013 13:46
-
-
Save Getaji/7101066 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package mw.bouyomip.src; | |
import java.awt.BorderLayout; | |
import java.awt.Component; | |
import java.awt.Dimension; | |
import java.awt.FlowLayout; | |
import java.awt.event.ActionEvent; | |
import java.awt.event.ActionListener; | |
import java.util.HashMap; | |
import java.util.Map; | |
import javax.swing.JButton; | |
import javax.swing.JCheckBox; | |
import javax.swing.JComboBox; | |
import javax.swing.JLabel; | |
import javax.swing.JPanel; | |
import javax.swing.JSlider; | |
import javax.swing.JTextField; | |
import com.orekyuu.javatter.view.IJavatterTab; | |
/** | |
* 設定画面表示クラスです. | |
* @author Getaji | |
* | |
*/ | |
public class BouyomiConfig implements IJavatterTab { | |
/** セーブデータ. */ | |
private BouyomiSaveData save; | |
private final String[] voice = | |
{"女性1", "女性2", "男性1", "男性2", "中性", "ロボット", "機械1", "機械2"}; | |
/** | |
* セーブデータを読み込みます. | |
*/ | |
public BouyomiConfig() { | |
save = BouyomiSaveData.INSTANCE; | |
} | |
@Override | |
public Component getComponent() { | |
final JPanel panel = new JPanel(); | |
final JPanel panelCenter = new JPanel(); | |
panel.setLayout(new BorderLayout()); | |
panelCenter.setLayout(new FlowLayout(FlowLayout.LEFT)); | |
final Dimension size = new Dimension(350, 22); | |
final JCheckBox checkEnable = new JCheckBox("読み上げを有効にする"); | |
final JCheckBox checkDefault = new JCheckBox("デフォルト設定を使う"); | |
final JTextField fieldFormatNormal = new JTextField(save.getString("format_normal")); | |
final JTextField fieldFormatRetweet = new JTextField(save.getString("format_retweet")); | |
final JSlider sliderVolume = new JSlider(); | |
final JSlider sliderSpeed = new JSlider(); | |
final JSlider sliderPitch = new JSlider(); | |
final JComboBox<String> comboVoice = new JComboBox<>(voice); | |
checkEnable.setSelected(save.getBoolean("enable")); | |
checkDefault.setSelected(save.getBoolean("default")); | |
fieldFormatNormal.setPreferredSize(size); | |
fieldFormatRetweet.setPreferredSize(size); | |
sliderVolume.setPreferredSize(size); | |
sliderVolume.setMaximum(100); | |
sliderVolume.setMinimum(0); | |
sliderVolume.setValue(save.getInt("volume")); | |
sliderSpeed.setPreferredSize(size); | |
sliderSpeed.setMaximum(300); | |
sliderSpeed.setMinimum(50); | |
sliderSpeed.setValue(save.getInt("speed")); | |
sliderPitch.setPreferredSize(size); | |
sliderPitch.setMaximum(300); | |
sliderPitch.setMinimum(50); | |
sliderPitch.setValue(save.getInt("pitch")); | |
panelCenter.add(checkEnable); | |
panelCenter.add(checkDefault); | |
panelCenter.add(new JLabel("通常ツイートフォーマット")); | |
panelCenter.add(fieldFormatNormal); | |
panelCenter.add(new JLabel("リツイートフォーマット")); | |
panelCenter.add(fieldFormatRetweet); | |
panelCenter.add(new JLabel("音量")); | |
panelCenter.add(sliderVolume); | |
panelCenter.add(new JLabel("速度")); | |
panelCenter.add(sliderSpeed); | |
panelCenter.add(new JLabel("音程")); | |
panelCenter.add(sliderPitch); | |
panelCenter.add(new JLabel("声質")); | |
panelCenter.add(comboVoice); | |
panel.add(panelCenter, BorderLayout.CENTER); | |
JPanel panelButton = new JPanel(); | |
JButton buttonOK = new JButton("OK"); | |
JButton buttonCancel = new JButton("Cancel"); | |
buttonOK.addActionListener(new ActionListener() { | |
public void actionPerformed(ActionEvent arg0) { | |
Map<String, Object> map = new HashMap<>(); | |
map.put("enable", checkEnable.isSelected()); | |
map.put("default", checkDefault.isSelected()); | |
map.put("format_normal", fieldFormatNormal.getText()); | |
map.put("format_retweet", fieldFormatRetweet.getText()); | |
map.put("volume", sliderVolume.getValue()); | |
map.put("speed", sliderSpeed.getValue()); | |
map.put("tone", sliderPitch.getValue()); | |
map.put("voice", comboVoice.getSelectedIndex() + 1); | |
save.save(map); | |
} | |
}); | |
panelButton.add(buttonOK); | |
panelButton.add(buttonCancel); | |
panel.add(panelButton, BorderLayout.SOUTH); | |
return panel; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment