У меня есть 4 пользовательских прядильщика, которые изменяют ширину, высоту, местоположение X и местоположение Y одного выбранного виджета. Мой виджет можно перетаскивать по экрану, и идея состоит в том, чтобы использовать эти прядильщики для изменения определенных свойств, таких как ширина или высота, и увидеть немедленное влияние на изменения. Есть ли шаблон, который я могу использовать для замены всех этих классов (XSpinnerListener, YSpinnerListener...) только с одним и указать, какое свойство моего текущего объекта (JButton) необходимо изменить? Это хороший дизайн?
public void init(){
widthSpinner.setListener(new WidthSpinnerListener());
heightSpinner.setListener(new HeightSpinnerListener());
xSpinner.setListener(new XSpinnerListener());
ySpinner.setListener(new YSpinnerListener());
}
public class XSpinnerListener implements SpinnerListener {
@Override
public void spinnerValueChanged() {
current.setLocation(xSpinner.getValue(), current.getY());
}
}
public class YSpinnerListener implements SpinnerListener {
@Override
public void spinnerValueChanged() {
current.setLocation(current.getX(), ySpinner.getValue());
}
}
public class WidthSpinnerListener implements SpinnerListener {
@Override
public void spinnerValueChanged() {
current.setSize(widthSpinner.getValue(), current.getHeight());
}
}
public class HeightSpinnerListener implements SpinnerListener {
@Override
public void spinnerValueChanged() {
current.setSize(current.getWidth(), heightSpinner.getValue());
}
}