4

我正在 Netbeans 中创建一个 Swing GUI。此 GUI 的目的是打开(缓冲的)图像(在 JLabel 中作为图标)并对其应用仿射变换。现在有 4 个转换,我正在做如下。

在此处输入图像描述

现在,每个变换都需要两个滑块来更改 X 和 Y 值,旋转的除外,它只需要一个。我这样做是因为它比必须为所有 4 种类型的转换执行四个选项卡要好得多。我也希望它是这样的,例如,如果旋转图像,则可以通过从下拉列表中选择剪切来剪切相同的旋转图像。

问题是(是):我如何重绘标签图标并在同一个重绘图像上应用不同的变换?另外,如何根据所选效果更改 JSlider 的最小值和最大值?

4

2 回答 2

7

您应该存储最初加载的 BufferedImage,并创建它的副本 - 这样您就不会“破坏”它。

至于更改值,有方法 setMaximum 和 setMinimum - 将侦听器添加到列表中,如Oracle 教程中所述并修改值。

于 2012-10-09T19:38:45.710 回答
4

作为@Daniel 回答的一个具体示例,文章Image processing with Java 2D描述了该程序ImageDicer。它构造 a ,其中的TreeMap<String, BufferedImageOp>每一个都可以从 a 中选择JComboBox并应用于 a BufferedImage

另请参阅此处此处的相关示例。

于 2012-10-09T20:55:46.950 回答