OSDN Git Service

ffmpegパラメータ設定パネルを外だし
authoryukihane <yukihane.feather@gmail.com>
Wed, 31 Aug 2011 02:32:24 +0000 (11:32 +0900)
committeryukihane <yukihane.feather@gmail.com>
Wed, 31 Aug 2011 02:33:46 +0000 (11:33 +0900)
frontend/src/yukihane/inqubus/gui/ConfigDialog.java
frontend/src/yukihane/inqubus/gui/FfmpegParamPanel.java [new file with mode: 0644]

index 66dc49f..bbb837d 100644 (file)
@@ -126,24 +126,6 @@ public class ConfigDialog extends JDialog {
         fldFfmpegDllPath = new JTextField();
         btnFfmpegPath = new JButton();
         btnFfmpegDllPath = new JButton();
-        final JPanel pnlFfmpegParam = new JPanel();
-        final JPanel pnlFfmpegParamOption = new JPanel();
-        final JLabel lblFfmpegOptionExtension = new JLabel();
-        final JLabel lblFfmpegOptionMain = new JLabel();
-        final JLabel lblFfmpegOptionIn = new JLabel();
-        final JLabel lblFfmpegOptionOut = new JLabel();
-        final JLabel lblFfmpegOptionAvfilter = new JLabel();
-        cbFfmpegOptionResize = new JCheckBox();
-        final JLabel lblFfmpegOptionResizeWidth = new JLabel();
-        fldFfmpegOptionResizeWidth = new JTextField();
-        final JLabel lblFfmpegOptionResizeHeight = new JLabel();
-        fldFfmpegOptionResizeHeight = new JTextField();
-        cbFfmpegOptionKeepAspect = new JCheckBox();
-        fldFfmpegOptionExtension = new JTextField();
-        fldFfmpegOptionMain = new JTextField();
-        fldFfmpegOptionIn = new JTextField();
-        fldFfmpegOptionOut = new JTextField();
-        fldFfmpegOptionAv = new JTextField();
         final JPanel pnlNgSetting = new JPanel();
         final JPanel pnlNgWord = new JPanel();
         final JScrollPane scrNgWord = new JScrollPane();
@@ -682,118 +664,7 @@ public class ConfigDialog extends JDialog {
 
         pnlFfmpegParam.setBorder(BorderFactory.createTitledBorder("ffmpegパラメータ"));
 
-        pnlFfmpegParamOption.setBorder(BorderFactory.createEtchedBorder());
 
-        lblFfmpegOptionExtension.setText("出力動画の拡張子");
-
-        lblFfmpegOptionMain.setText("メインオプション");
-
-        lblFfmpegOptionIn.setText("入力オプション");
-
-        lblFfmpegOptionOut.setText("出力オプション");
-
-        lblFfmpegOptionAvfilter.setText("avfilterオプション");
-
-        cbFfmpegOptionResize.setText("次のサイズに収まるよう縮小(-s)");
-
-        lblFfmpegOptionResizeWidth.setText("横");
-
-        lblFfmpegOptionResizeHeight.setText("縦");
-
-        cbFfmpegOptionKeepAspect.setText("アスペクト比を維持");
-
-        GroupLayout gl_pnlFfmpegParamOption = new GroupLayout(pnlFfmpegParamOption);
-        pnlFfmpegParamOption.setLayout(gl_pnlFfmpegParamOption);
-        gl_pnlFfmpegParamOption.setHorizontalGroup(
-            gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.LEADING)
-            .addGroup(gl_pnlFfmpegParamOption.createSequentialGroup()
-                .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.LEADING)
-                    .addGroup(gl_pnlFfmpegParamOption.createSequentialGroup()
-                        .addContainerGap()
-                        .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.LEADING)
-                            .addComponent(lblFfmpegOptionAvfilter)
-                            .addComponent(lblFfmpegOptionExtension)
-                            .addComponent(lblFfmpegOptionMain)
-                            .addComponent(lblFfmpegOptionIn)
-                            .addComponent(lblFfmpegOptionOut))
-                        .addPreferredGap(ComponentPlacement.RELATED)
-                        .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.LEADING)
-                            .addComponent(fldFfmpegOptionExtension, GroupLayout.PREFERRED_SIZE, 51, GroupLayout.PREFERRED_SIZE)
-                            .addComponent(fldFfmpegOptionMain, GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE)
-                            .addComponent(fldFfmpegOptionIn, GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE)
-                            .addComponent(fldFfmpegOptionOut, GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE)
-                            .addComponent(fldFfmpegOptionAv, GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE)))
-                    .addGroup(gl_pnlFfmpegParamOption.createSequentialGroup()
-                        .addGap(12, 12, 12)
-                        .addComponent(cbFfmpegOptionResize)
-                        .addPreferredGap(ComponentPlacement.UNRELATED)
-                        .addComponent(lblFfmpegOptionResizeWidth)
-                        .addPreferredGap(ComponentPlacement.RELATED)
-                        .addComponent(fldFfmpegOptionResizeWidth, GroupLayout.PREFERRED_SIZE, 48, GroupLayout.PREFERRED_SIZE)
-                        .addGap(12, 12, 12)
-                        .addComponent(lblFfmpegOptionResizeHeight)
-                        .addPreferredGap(ComponentPlacement.RELATED)
-                        .addComponent(fldFfmpegOptionResizeHeight, GroupLayout.PREFERRED_SIZE, 48, GroupLayout.PREFERRED_SIZE))
-                    .addGroup(gl_pnlFfmpegParamOption.createSequentialGroup()
-                        .addGap(33, 33, 33)
-                        .addComponent(cbFfmpegOptionKeepAspect)))
-                .addContainerGap())
-        );
-        gl_pnlFfmpegParamOption.setVerticalGroup(
-            gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.LEADING)
-            .addGroup(gl_pnlFfmpegParamOption.createSequentialGroup()
-                .addContainerGap()
-                .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.BASELINE)
-                    .addComponent(lblFfmpegOptionExtension)
-                    .addComponent(fldFfmpegOptionExtension, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
-                .addPreferredGap(ComponentPlacement.RELATED)
-                .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.BASELINE)
-                    .addComponent(lblFfmpegOptionMain)
-                    .addComponent(fldFfmpegOptionMain, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
-                .addPreferredGap(ComponentPlacement.RELATED)
-                .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.BASELINE)
-                    .addComponent(lblFfmpegOptionIn)
-                    .addComponent(fldFfmpegOptionIn, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
-                .addPreferredGap(ComponentPlacement.RELATED)
-                .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.BASELINE)
-                    .addComponent(lblFfmpegOptionOut)
-                    .addComponent(fldFfmpegOptionOut, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
-                .addPreferredGap(ComponentPlacement.RELATED)
-                .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.BASELINE)
-                    .addComponent(lblFfmpegOptionAvfilter)
-                    .addComponent(fldFfmpegOptionAv, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
-                .addPreferredGap(ComponentPlacement.RELATED)
-                .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.BASELINE)
-                    .addComponent(cbFfmpegOptionResize)
-                    .addComponent(lblFfmpegOptionResizeWidth)
-                    .addComponent(fldFfmpegOptionResizeWidth, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
-                    .addComponent(lblFfmpegOptionResizeHeight)
-                    .addComponent(fldFfmpegOptionResizeHeight, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
-                .addPreferredGap(ComponentPlacement.RELATED)
-                .addComponent(cbFfmpegOptionKeepAspect)
-                .addContainerGap())
-        );
-
-        GroupLayout gl_pnlFfmpegParam = new GroupLayout(pnlFfmpegParam);
-        pnlFfmpegParam.setLayout(gl_pnlFfmpegParam);
-        gl_pnlFfmpegParam.setHorizontalGroup(
-            gl_pnlFfmpegParam.createParallelGroup(Alignment.LEADING)
-            .addGroup(gl_pnlFfmpegParam.createSequentialGroup()
-                .addContainerGap()
-                .addGroup(gl_pnlFfmpegParam.createParallelGroup(Alignment.LEADING)
-                    .addComponent(pnlFfmpegParamOption, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                    .addComponent(cmbFfmpegOptionFile, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
-                .addContainerGap())
-        );
-        gl_pnlFfmpegParam.setVerticalGroup(
-            gl_pnlFfmpegParam.createParallelGroup(Alignment.LEADING)
-            .addGroup(gl_pnlFfmpegParam.createSequentialGroup()
-                .addContainerGap()
-                .addComponent(cmbFfmpegOptionFile, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
-                .addPreferredGap(ComponentPlacement.RELATED)
-                .addComponent(pnlFfmpegParamOption, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                .addContainerGap())
-        );
 
         GroupLayout gl_pnlFfmpeg = new GroupLayout(pnlFfmpeg);
         pnlFfmpeg.setLayout(gl_pnlFfmpeg);
@@ -1210,17 +1081,7 @@ public class ConfigDialog extends JDialog {
     private final JTextField fldFfmpegDllPath;
     private final JButton btnFfmpegDllPath;
     // ffmpeg - ffmpegパラメータ
-    private final OptionComboBoxModel mdlFfmpegOption = new OptionComboBoxModel();
-    private final JComboBox<FFmpegSelectedItem> cmbFfmpegOptionFile = new JComboBox<>(mdlFfmpegOption);
-    private final JTextField fldFfmpegOptionExtension;
-    private final JTextField fldFfmpegOptionMain;
-    private final JTextField fldFfmpegOptionIn;
-    private final JTextField fldFfmpegOptionOut;
-    private final JTextField fldFfmpegOptionAv;
-    private final JCheckBox cbFfmpegOptionResize;
-    private final JTextField fldFfmpegOptionResizeWidth;
-    private final JTextField fldFfmpegOptionResizeHeight;
-    private final JCheckBox cbFfmpegOptionKeepAspect;
+    private final FfmpegParamPanel pnlFfmpegParam = new FfmpegParamPanel();
     // NG設定
     // NG設定 - NGワード
     private final JList<String> lstNgWord;
@@ -1330,16 +1191,16 @@ public class ConfigDialog extends JDialog {
          * ffmpeg - ffmpegパラメータ
          */
         final String fof = p.getFfmpegOptionFile();
-        mdlFfmpegOption.reload(StringUtils.isNotEmpty(fof) ? new File(fof) : null);
-        fldFfmpegOptionExtension.setText(p.getFfmpegExtension());
-        fldFfmpegOptionMain.setText(p.getFfmpegMainOption());
-        fldFfmpegOptionIn.setText(p.getFfmpegInOption());
-        fldFfmpegOptionOut.setText(p.getFfmpegOutOption());
-        fldFfmpegOptionAv.setText(p.getFfmpegAvOption());
-        cbFfmpegOptionResize.setSelected(p.getFfmpegResizeEnable());
-        fldFfmpegOptionResizeWidth.setText(p.getFfmpegResizeWidth());
-        fldFfmpegOptionResizeHeight.setText(p.getFfmpegResizeHeight());
-        cbFfmpegOptionKeepAspect.setSelected(p.getFfmpegKeepAspect());
+        pnlFfmpegParam.mdlFfmpegOption.reload(StringUtils.isNotEmpty(fof) ? new File(fof) : null);
+        pnlFfmpegParam.fldFfmpegOptionExtension.setText(p.getFfmpegExtension());
+        pnlFfmpegParam.fldFfmpegOptionMain.setText(p.getFfmpegMainOption());
+        pnlFfmpegParam.fldFfmpegOptionIn.setText(p.getFfmpegInOption());
+        pnlFfmpegParam.fldFfmpegOptionOut.setText(p.getFfmpegOutOption());
+        pnlFfmpegParam.fldFfmpegOptionAv.setText(p.getFfmpegAvOption());
+        pnlFfmpegParam.cbFfmpegOptionResize.setSelected(p.getFfmpegResizeEnable());
+        pnlFfmpegParam.fldFfmpegOptionResizeWidth.setText(p.getFfmpegResizeWidth());
+        pnlFfmpegParam.fldFfmpegOptionResizeHeight.setText(p.getFfmpegResizeHeight());
+        pnlFfmpegParam.cbFfmpegOptionKeepAspect.setSelected(p.getFfmpegKeepAspect());
 
         /*
          * NG 設定
@@ -1436,17 +1297,17 @@ public class ConfigDialog extends JDialog {
         /*
          * ffmpeg - ffmpegパラメータ
          */
-        final File fileFfmpegOption = mdlFfmpegOption.getSelectedFile();
+        final File fileFfmpegOption = pnlFfmpegParam.mdlFfmpegOption.getSelectedFile();
         p.setFfmpegOptionFile(fileFfmpegOption != null ? fileFfmpegOption.getPath() : null);
-        p.setFfmpegExtension(fldFfmpegOptionExtension.getText());
-        p.setFfmpegMainOption(fldFfmpegOptionMain.getText());
-        p.setFfmpegInOption(fldFfmpegOptionIn.getText());
-        p.setFfmpegOutOption(fldFfmpegOptionOut.getText());
-        p.setFfmpegAvOption(fldFfmpegOptionAv.getText());
-        p.setFfmpegResizeEnable(cbFfmpegOptionResize.isSelected());
-        p.setFfmpegResizeWidth(fldFfmpegOptionResizeWidth.getText());
-        p.setFfmpegResizeHeight(fldFfmpegOptionResizeHeight.getText());
-        p.setFfmpegKeepAspect(cbFfmpegOptionKeepAspect.isSelected());
+        p.setFfmpegExtension(pnlFfmpegParam.fldFfmpegOptionExtension.getText());
+        p.setFfmpegMainOption(pnlFfmpegParam.fldFfmpegOptionMain.getText());
+        p.setFfmpegInOption(pnlFfmpegParam.fldFfmpegOptionIn.getText());
+        p.setFfmpegOutOption(pnlFfmpegParam.fldFfmpegOptionOut.getText());
+        p.setFfmpegAvOption(pnlFfmpegParam.fldFfmpegOptionAv.getText());
+        p.setFfmpegResizeEnable(pnlFfmpegParam.cbFfmpegOptionResize.isSelected());
+        p.setFfmpegResizeWidth(pnlFfmpegParam.fldFfmpegOptionResizeWidth.getText());
+        p.setFfmpegResizeHeight(pnlFfmpegParam.fldFfmpegOptionResizeHeight.getText());
+        p.setFfmpegKeepAspect(pnlFfmpegParam.cbFfmpegOptionKeepAspect.isSelected());
 
         /*
          * NG 設定
diff --git a/frontend/src/yukihane/inqubus/gui/FfmpegParamPanel.java b/frontend/src/yukihane/inqubus/gui/FfmpegParamPanel.java
new file mode 100644 (file)
index 0000000..d21d0ed
--- /dev/null
@@ -0,0 +1,144 @@
+package yukihane.inqubus.gui;
+
+import javax.swing.BorderFactory;
+import javax.swing.GroupLayout;
+import javax.swing.GroupLayout.Alignment;
+import javax.swing.JCheckBox;
+import javax.swing.JComboBox;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+import javax.swing.LayoutStyle.ComponentPlacement;
+import saccubus.FFmpegSelectedItem;
+import saccubus.OptionComboBoxModel;
+
+/**
+ *
+ * @author yuki
+ */
+class FfmpegParamPanel extends JPanel {
+
+    private static final long serialVersionUID = 1L;
+    // ffmpeg - ffmpegパラメータ
+    final OptionComboBoxModel mdlFfmpegOption = new OptionComboBoxModel();
+    final JComboBox<FFmpegSelectedItem> cmbFfmpegOptionFile = new JComboBox<>(mdlFfmpegOption);
+    final JTextField fldFfmpegOptionExtension = new JTextField();
+    final JTextField fldFfmpegOptionMain = new JTextField();
+    final JTextField fldFfmpegOptionIn = new JTextField();
+    final JTextField fldFfmpegOptionOut = new JTextField();
+    final JTextField fldFfmpegOptionAv = new JTextField();
+    final JCheckBox cbFfmpegOptionResize = new JCheckBox("次のサイズに収まるよう縮小(-s)");
+    final JTextField fldFfmpegOptionResizeWidth = new JTextField();
+    final JTextField fldFfmpegOptionResizeHeight = new JTextField();
+    final JCheckBox cbFfmpegOptionKeepAspect = new JCheckBox("アスペクト比を維持");
+
+    FfmpegParamPanel() {
+        final JLabel lblFfmpegOptionExtension = new JLabel("出力動画の拡張子");
+        final JLabel lblFfmpegOptionMain = new JLabel("メインオプション");
+        final JLabel lblFfmpegOptionIn = new JLabel("入力オプション");
+        final JLabel lblFfmpegOptionOut = new JLabel("出力オプション");
+        final JLabel lblFfmpegOptionAvfilter = new JLabel("avfilterオプション");
+        final JLabel lblFfmpegOptionResizeWidth = new JLabel("横");
+        final JLabel lblFfmpegOptionResizeHeight = new JLabel("縦");
+
+
+
+        final JPanel pnlFfmpegParamOption = new JPanel();
+        pnlFfmpegParamOption.setBorder(BorderFactory.createEtchedBorder());
+
+        GroupLayout gl_pnlFfmpegParamOption = new GroupLayout(pnlFfmpegParamOption);
+        pnlFfmpegParamOption.setLayout(gl_pnlFfmpegParamOption);
+        gl_pnlFfmpegParamOption.setHorizontalGroup(
+            gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.LEADING)
+            .addGroup(gl_pnlFfmpegParamOption.createSequentialGroup()
+                .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.LEADING)
+                    .addGroup(gl_pnlFfmpegParamOption.createSequentialGroup()
+                        .addContainerGap()
+                        .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.LEADING)
+                            .addComponent(lblFfmpegOptionAvfilter)
+                            .addComponent(lblFfmpegOptionExtension)
+                            .addComponent(lblFfmpegOptionMain)
+                            .addComponent(lblFfmpegOptionIn)
+                            .addComponent(lblFfmpegOptionOut))
+                        .addPreferredGap(ComponentPlacement.RELATED)
+                        .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.LEADING)
+                            .addComponent(fldFfmpegOptionExtension, GroupLayout.PREFERRED_SIZE, 51, GroupLayout.PREFERRED_SIZE)
+                            .addComponent(fldFfmpegOptionMain, GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE)
+                            .addComponent(fldFfmpegOptionIn, GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE)
+                            .addComponent(fldFfmpegOptionOut, GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE)
+                            .addComponent(fldFfmpegOptionAv, GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE)))
+                    .addGroup(gl_pnlFfmpegParamOption.createSequentialGroup()
+                        .addGap(12, 12, 12)
+                        .addComponent(cbFfmpegOptionResize)
+                        .addPreferredGap(ComponentPlacement.UNRELATED)
+                        .addComponent(lblFfmpegOptionResizeWidth)
+                        .addPreferredGap(ComponentPlacement.RELATED)
+                        .addComponent(fldFfmpegOptionResizeWidth, GroupLayout.PREFERRED_SIZE, 48, GroupLayout.PREFERRED_SIZE)
+                        .addGap(12, 12, 12)
+                        .addComponent(lblFfmpegOptionResizeHeight)
+                        .addPreferredGap(ComponentPlacement.RELATED)
+                        .addComponent(fldFfmpegOptionResizeHeight, GroupLayout.PREFERRED_SIZE, 48, GroupLayout.PREFERRED_SIZE))
+                    .addGroup(gl_pnlFfmpegParamOption.createSequentialGroup()
+                        .addGap(33, 33, 33)
+                        .addComponent(cbFfmpegOptionKeepAspect)))
+                .addContainerGap())
+        );
+        gl_pnlFfmpegParamOption.setVerticalGroup(
+            gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.LEADING)
+            .addGroup(gl_pnlFfmpegParamOption.createSequentialGroup()
+                .addContainerGap()
+                .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.BASELINE)
+                    .addComponent(lblFfmpegOptionExtension)
+                    .addComponent(fldFfmpegOptionExtension, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
+                .addPreferredGap(ComponentPlacement.RELATED)
+                .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.BASELINE)
+                    .addComponent(lblFfmpegOptionMain)
+                    .addComponent(fldFfmpegOptionMain, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
+                .addPreferredGap(ComponentPlacement.RELATED)
+                .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.BASELINE)
+                    .addComponent(lblFfmpegOptionIn)
+                    .addComponent(fldFfmpegOptionIn, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
+                .addPreferredGap(ComponentPlacement.RELATED)
+                .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.BASELINE)
+                    .addComponent(lblFfmpegOptionOut)
+                    .addComponent(fldFfmpegOptionOut, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
+                .addPreferredGap(ComponentPlacement.RELATED)
+                .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.BASELINE)
+                    .addComponent(lblFfmpegOptionAvfilter)
+                    .addComponent(fldFfmpegOptionAv, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
+                .addPreferredGap(ComponentPlacement.RELATED)
+                .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.BASELINE)
+                    .addComponent(cbFfmpegOptionResize)
+                    .addComponent(lblFfmpegOptionResizeWidth)
+                    .addComponent(fldFfmpegOptionResizeWidth, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
+                    .addComponent(lblFfmpegOptionResizeHeight)
+                    .addComponent(fldFfmpegOptionResizeHeight, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
+                .addPreferredGap(ComponentPlacement.RELATED)
+                .addComponent(cbFfmpegOptionKeepAspect)
+                .addContainerGap())
+        );
+
+
+
+        GroupLayout gl_pnlFfmpegParam = new GroupLayout(this);
+        setLayout(gl_pnlFfmpegParam);
+        gl_pnlFfmpegParam.setHorizontalGroup(
+            gl_pnlFfmpegParam.createParallelGroup(Alignment.LEADING)
+            .addGroup(gl_pnlFfmpegParam.createSequentialGroup()
+                .addContainerGap()
+                .addGroup(gl_pnlFfmpegParam.createParallelGroup(Alignment.LEADING)
+                    .addComponent(pnlFfmpegParamOption, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                    .addComponent(cmbFfmpegOptionFile, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
+                .addContainerGap())
+        );
+        gl_pnlFfmpegParam.setVerticalGroup(
+            gl_pnlFfmpegParam.createParallelGroup(Alignment.LEADING)
+            .addGroup(gl_pnlFfmpegParam.createSequentialGroup()
+                .addContainerGap()
+                .addComponent(cmbFfmpegOptionFile, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(ComponentPlacement.RELATED)
+                .addComponent(pnlFfmpegParamOption, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                .addContainerGap())
+        );
+    }
+}