Merge pull request #651 from sdburns1998/spinner-slider-spinning-and-sliding

Spinner slider spinning and sliding
This commit is contained in:
Ganom
2019-06-18 17:06:44 -04:00
committed by GitHub

View File

@@ -75,6 +75,7 @@ import javax.swing.border.EmptyBorder;
import javax.swing.event.ChangeListener; import javax.swing.event.ChangeListener;
import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener; import javax.swing.event.DocumentListener;
import javax.swing.plaf.basic.BasicSpinnerUI;
import javax.swing.text.JTextComponent; import javax.swing.text.JTextComponent;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.runelite.client.config.ChatColorConfig; import net.runelite.client.config.ChatColorConfig;
@@ -702,20 +703,66 @@ public class ConfigPanel extends PluginPanel
if (max < Integer.MAX_VALUE) if (max < Integer.MAX_VALUE)
{ {
JLabel sliderValueLabel = new JLabel();
JSlider slider = new JSlider(min, max, value); JSlider slider = new JSlider(min, max, value);
configEntryName.setText(name.concat(": ").concat(String.valueOf(slider.getValue()))); sliderValueLabel.setText(String.valueOf(slider.getValue()));
slider.setPreferredSize(new Dimension(85, 25)); slider.setPreferredSize(new Dimension(85, 25));
String finalName = name;
slider.addChangeListener((l) -> slider.addChangeListener((l) ->
{ {
configEntryName.setText(finalName.concat(": ").concat(String.valueOf(slider.getValue()))); sliderValueLabel.setText(String.valueOf(slider.getValue()));
if (!slider.getValueIsAdjusting()) if (!slider.getValueIsAdjusting())
{ {
changeConfiguration(listItem, config, slider, cd, cid); changeConfiguration(listItem, config, slider, cd, cid);
} }
} }
); );
item.add(slider, BorderLayout.EAST);
SpinnerModel model = new SpinnerNumberModel(value, min, max, 1);
JSpinner spinner = new JSpinner(model);
Component editor = spinner.getEditor();
JFormattedTextField spinnerTextField = ((JSpinner.DefaultEditor) editor).getTextField();
spinnerTextField.setColumns(SPINNER_FIELD_WIDTH);
spinner.setUI(new BasicSpinnerUI()
{
protected Component createNextButton()
{
return null;
}
protected Component createPreviousButton()
{
return null;
}
});
spinner.addChangeListener((ce) ->
{
changeConfiguration(listItem, config, spinner, cd, cid);
spinner.setVisible(false);
sliderValueLabel.setText(String.valueOf(spinner.getValue()));
sliderValueLabel.setVisible(true);
slider.setValue((Integer) spinner.getValue());
slider.setVisible(true);
});
spinner.setVisible(false);
sliderValueLabel.addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
spinner.setValue(slider.getValue());
spinner.setVisible(true);
sliderValueLabel.setVisible(false);
slider.setVisible(false);
}
});
JPanel subPanel = new JPanel();
subPanel.add(spinner);
subPanel.add(sliderValueLabel);
subPanel.add(slider);
item.add(subPanel, BorderLayout.EAST);
} }
else else
{ {