1 package yukihane.inqubus.gui;
3 import javax.swing.BorderFactory;
4 import javax.swing.GroupLayout;
5 import javax.swing.GroupLayout.Alignment;
6 import javax.swing.JCheckBox;
7 import javax.swing.JComboBox;
8 import javax.swing.JLabel;
9 import javax.swing.JPanel;
10 import javax.swing.JTextField;
11 import javax.swing.LayoutStyle.ComponentPlacement;
12 import saccubus.FFmpegSelectedItem;
13 import saccubus.OptionComboBoxModel;
19 class FfmpegParamPanel extends JPanel {
21 private static final long serialVersionUID = 1L;
22 // ffmpeg - ffmpegパラメータ
23 final OptionComboBoxModel mdlFfmpegOption = new OptionComboBoxModel();
24 final JComboBox<FFmpegSelectedItem> cmbFfmpegOptionFile = new JComboBox<>(mdlFfmpegOption);
25 final JTextField fldFfmpegOptionExtension = new JTextField();
26 final JTextField fldFfmpegOptionMain = new JTextField();
27 final JTextField fldFfmpegOptionIn = new JTextField();
28 final JTextField fldFfmpegOptionOut = new JTextField();
29 final JTextField fldFfmpegOptionAv = new JTextField();
30 final JCheckBox cbFfmpegOptionResize = new JCheckBox("次のサイズに収まるよう縮小(-s)");
31 final JTextField fldFfmpegOptionResizeWidth = new JTextField();
32 final JTextField fldFfmpegOptionResizeHeight = new JTextField();
33 final JCheckBox cbFfmpegOptionKeepAspect = new JCheckBox("アスペクト比を維持");
36 final JLabel lblFfmpegOptionExtension = new JLabel("出力動画の拡張子");
37 final JLabel lblFfmpegOptionMain = new JLabel("メインオプション");
38 final JLabel lblFfmpegOptionIn = new JLabel("入力オプション");
39 final JLabel lblFfmpegOptionOut = new JLabel("出力オプション");
40 final JLabel lblFfmpegOptionAvfilter = new JLabel("avfilterオプション");
41 final JLabel lblFfmpegOptionResizeWidth = new JLabel("横");
42 final JLabel lblFfmpegOptionResizeHeight = new JLabel("縦");
46 final JPanel pnlFfmpegParamOption = new JPanel();
47 pnlFfmpegParamOption.setBorder(BorderFactory.createEtchedBorder());
49 final GroupLayout glFfmpegParamOption = new GroupLayout(pnlFfmpegParamOption);
50 pnlFfmpegParamOption.setLayout(glFfmpegParamOption);
51 glFfmpegParamOption.setHorizontalGroup(
52 glFfmpegParamOption.createParallelGroup(Alignment.LEADING)
53 .addGroup(glFfmpegParamOption.createSequentialGroup()
54 .addGroup(glFfmpegParamOption.createParallelGroup(Alignment.LEADING)
55 .addGroup(glFfmpegParamOption.createSequentialGroup()
57 .addGroup(glFfmpegParamOption.createParallelGroup(Alignment.LEADING)
58 .addComponent(lblFfmpegOptionAvfilter)
59 .addComponent(lblFfmpegOptionExtension)
60 .addComponent(lblFfmpegOptionMain)
61 .addComponent(lblFfmpegOptionIn)
62 .addComponent(lblFfmpegOptionOut))
63 .addPreferredGap(ComponentPlacement.RELATED)
64 .addGroup(glFfmpegParamOption.createParallelGroup(Alignment.LEADING)
65 .addComponent(fldFfmpegOptionExtension, GroupLayout.PREFERRED_SIZE, 51, GroupLayout.PREFERRED_SIZE)
66 .addComponent(fldFfmpegOptionMain, GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE)
67 .addComponent(fldFfmpegOptionIn, GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE)
68 .addComponent(fldFfmpegOptionOut, GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE)
69 .addComponent(fldFfmpegOptionAv, GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE)))
70 .addGroup(glFfmpegParamOption.createSequentialGroup()
72 .addComponent(cbFfmpegOptionResize)
73 .addPreferredGap(ComponentPlacement.UNRELATED)
74 .addComponent(lblFfmpegOptionResizeWidth)
75 .addPreferredGap(ComponentPlacement.RELATED)
76 .addComponent(fldFfmpegOptionResizeWidth, GroupLayout.PREFERRED_SIZE, 48, GroupLayout.PREFERRED_SIZE)
78 .addComponent(lblFfmpegOptionResizeHeight)
79 .addPreferredGap(ComponentPlacement.RELATED)
80 .addComponent(fldFfmpegOptionResizeHeight, GroupLayout.PREFERRED_SIZE, 48, GroupLayout.PREFERRED_SIZE))
81 .addGroup(glFfmpegParamOption.createSequentialGroup()
83 .addComponent(cbFfmpegOptionKeepAspect)))
86 glFfmpegParamOption.setVerticalGroup(
87 glFfmpegParamOption.createParallelGroup(Alignment.LEADING)
88 .addGroup(glFfmpegParamOption.createSequentialGroup()
90 .addGroup(glFfmpegParamOption.createParallelGroup(Alignment.BASELINE)
91 .addComponent(lblFfmpegOptionExtension)
92 .addComponent(fldFfmpegOptionExtension, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
93 .addPreferredGap(ComponentPlacement.RELATED)
94 .addGroup(glFfmpegParamOption.createParallelGroup(Alignment.BASELINE)
95 .addComponent(lblFfmpegOptionMain)
96 .addComponent(fldFfmpegOptionMain, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
97 .addPreferredGap(ComponentPlacement.RELATED)
98 .addGroup(glFfmpegParamOption.createParallelGroup(Alignment.BASELINE)
99 .addComponent(lblFfmpegOptionIn)
100 .addComponent(fldFfmpegOptionIn, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
101 .addPreferredGap(ComponentPlacement.RELATED)
102 .addGroup(glFfmpegParamOption.createParallelGroup(Alignment.BASELINE)
103 .addComponent(lblFfmpegOptionOut)
104 .addComponent(fldFfmpegOptionOut, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
105 .addPreferredGap(ComponentPlacement.RELATED)
106 .addGroup(glFfmpegParamOption.createParallelGroup(Alignment.BASELINE)
107 .addComponent(lblFfmpegOptionAvfilter)
108 .addComponent(fldFfmpegOptionAv, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
109 .addPreferredGap(ComponentPlacement.RELATED)
110 .addGroup(glFfmpegParamOption.createParallelGroup(Alignment.BASELINE)
111 .addComponent(cbFfmpegOptionResize)
112 .addComponent(lblFfmpegOptionResizeWidth)
113 .addComponent(fldFfmpegOptionResizeWidth, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
114 .addComponent(lblFfmpegOptionResizeHeight)
115 .addComponent(fldFfmpegOptionResizeHeight, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
116 .addPreferredGap(ComponentPlacement.RELATED)
117 .addComponent(cbFfmpegOptionKeepAspect)
123 final GroupLayout glFfmpegParam = new GroupLayout(this);
124 setLayout(glFfmpegParam);
125 glFfmpegParam.setHorizontalGroup(
126 glFfmpegParam.createParallelGroup(Alignment.LEADING)
127 .addGroup(glFfmpegParam.createSequentialGroup()
129 .addGroup(glFfmpegParam.createParallelGroup(Alignment.LEADING)
130 .addComponent(pnlFfmpegParamOption, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
131 .addComponent(cmbFfmpegOptionFile, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
134 glFfmpegParam.setVerticalGroup(
135 glFfmpegParam.createParallelGroup(Alignment.LEADING)
136 .addGroup(glFfmpegParam.createSequentialGroup()
138 .addComponent(cmbFfmpegOptionFile, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
139 .addPreferredGap(ComponentPlacement.RELATED)
140 .addComponent(pnlFfmpegParamOption, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)