Изменение минимального и максимального значения JSlider в зависимости от условия

Я создаю графический интерфейс Swing в Netbeans. Цель этого графического интерфейса - открыть (буферизованное) изображение (в JLabel как значок) и применить к нему аффинные преобразования. Теперь есть 4 преобразования, которые я делаю следующим образом.

введите описание изображения здесь

Теперь для каждого преобразования требуется два ползунка для изменения значений X и Y, за исключением поворота, для которого потребуется только один. Я сделал это так, потому что это намного лучше, чем делать четыре вкладки для всех 4 типов преобразований. Также я хочу, чтобы это было так, чтобы, например, если изображение повернуто, то же повернутое изображение можно было обрезать, выбрав сдвиг в раскрывающемся списке.

Проблема в следующем: как перекрасить значок метки и применить другое преобразование к одному и тому же перекрашенному изображению? Кроме того, как мне изменить минимальное и максимальное значение JSlider в зависимости от выбранного эффекта?


person md1hunox    schedule 09.10.2012    source источник


Ответы (2)


Вы должны сохранить изначально загруженный BufferedImage и создать его копию - так вы не «уничтожите» его.

Что касается изменения значения, существуют методы setMaximum и setMinimum - добавить слушателя в список, как указано в учебник Oracle и измените значения.

person Daniel Cisek    schedule 09.10.2012
comment
Да, так как это предполагается где-то хранить;) - person Daniel Cisek; 09.10.2012
comment
Вы можете определить модель с исходным буфером и списком эффектов, которые можно использовать для создания и возврата результирующего изображения. Это позволило бы изменить порядок эффектов и позволить представлениям решать, как на это реагировать ... ИМХО - person MadProgrammer; 10.10.2012
comment
См. Также примеры здесь и здесь. - person trashgod; 10.10.2012

В качестве конкретного примера ответа @ Daniel в статье < em> Обработка изображений с помощью Java 2D описывает программу ImageDicer. Он создает TreeMap<String, BufferedImageOp>, каждый из которых может быть выбран из JComboBox и применен к BufferedImage.

См. Также связанные примеры здесь и здесь.

person trashgod    schedule 09.10.2012