config: Fix size issue on sliders (#1253)

This commit is contained in:
Owain van Brakel
2019-08-04 21:08:40 +02:00
committed by Ganom
parent 3307b8e767
commit 769ed02ba4

View File

@@ -64,6 +64,7 @@ import javax.swing.JScrollPane;
import javax.swing.JSlider; import javax.swing.JSlider;
import javax.swing.JSpinner; import javax.swing.JSpinner;
import javax.swing.JTextArea; import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.ScrollPaneConstants; import javax.swing.ScrollPaneConstants;
import javax.swing.SpinnerModel; import javax.swing.SpinnerModel;
import javax.swing.SpinnerNumberModel; import javax.swing.SpinnerNumberModel;
@@ -212,7 +213,6 @@ public class ConfigPanel extends PluginPanel
initializePluginList(); initializePluginList();
refreshPluginList(); refreshPluginList();
} }
static class configTextArea extends JTextArea static class configTextArea extends JTextArea
@@ -747,7 +747,7 @@ public class ConfigPanel extends PluginPanel
JLabel sliderValueLabel = new JLabel(); JLabel sliderValueLabel = new JLabel();
JSlider slider = new JSlider(min, max, value); JSlider slider = new JSlider(min, max, value);
sliderValueLabel.setText(String.valueOf(slider.getValue())); sliderValueLabel.setText(String.valueOf(slider.getValue()));
slider.setPreferredSize(new Dimension(85, 25)); slider.setPreferredSize(new Dimension(80, 25));
slider.addChangeListener((l) -> slider.addChangeListener((l) ->
{ {
sliderValueLabel.setText(String.valueOf(slider.getValue())); sliderValueLabel.setText(String.valueOf(slider.getValue()));
@@ -775,33 +775,47 @@ public class ConfigPanel extends PluginPanel
return null; return null;
} }
}); });
JPanel subPanel = new JPanel();
subPanel.setPreferredSize(new Dimension(110, 25));
subPanel.setLayout(new BorderLayout());
spinner.addChangeListener((ce) -> spinner.addChangeListener((ce) ->
{ {
changeConfiguration(listItem, config, spinner, cd, cid); changeConfiguration(listItem, config, spinner, cd, cid);
spinner.setVisible(false);
sliderValueLabel.setText(String.valueOf(spinner.getValue())); sliderValueLabel.setText(String.valueOf(spinner.getValue()));
sliderValueLabel.setVisible(true);
slider.setValue((Integer) spinner.getValue()); slider.setValue((Integer) spinner.getValue());
slider.setVisible(true);
subPanel.add(sliderValueLabel, BorderLayout.WEST);
subPanel.add(slider, BorderLayout.EAST);
subPanel.remove(spinner);
validate();
repaint();
}); });
spinner.setVisible(false);
sliderValueLabel.addMouseListener(new MouseAdapter() sliderValueLabel.addMouseListener(new MouseAdapter()
{ {
public void mouseClicked(MouseEvent e) public void mouseClicked(MouseEvent e)
{ {
spinner.setValue(slider.getValue()); spinner.setValue(slider.getValue());
spinner.setVisible(true);
sliderValueLabel.setVisible(false); subPanel.remove(sliderValueLabel);
slider.setVisible(false); subPanel.remove(slider);
subPanel.add(spinner, BorderLayout.EAST);
validate();
repaint();
final JTextField tf = ((JSpinner.DefaultEditor) spinner.getEditor()).getTextField();
tf.requestFocusInWindow();
SwingUtilities.invokeLater(tf::selectAll);
} }
}); });
JPanel subPanel = new JPanel(); subPanel.add(sliderValueLabel, BorderLayout.WEST);
subPanel.add(slider, BorderLayout.EAST);
subPanel.add(spinner);
subPanel.add(sliderValueLabel);
subPanel.add(slider);
item.add(subPanel, BorderLayout.EAST); item.add(subPanel, BorderLayout.EAST);
} }