Skip to content

Instantly share code, notes, and snippets.

@Getaji
Created October 22, 2013 13:46
Show Gist options
  • Save Getaji/7101066 to your computer and use it in GitHub Desktop.
Save Getaji/7101066 to your computer and use it in GitHub Desktop.
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