问题
I'm creating a Swing GUI in Netbeans. The purpose of this GUI is to open an (buffered)image (in a JLabel as icon) and apply Affine transforms on it. Now there are 4 transforms that I'm doing as follows.
Now, each transform requires two sliders to change the X and Y value, except that of rotate, which will require only one. I did it this way since its much better than having to do four tabs for all 4 types of transforms. Also I want it to be such that , for example, if an image is rotated, the same rotated image can be sheared by selecting shear from the Drop down list.
The problem is (are): How do i repaint the label icon and apply different transform on the same repainted image? Also, how do i change the minimum and maximum value of JSlider depanding on the effect selected?
回答1:
You should store originally loaded BufferedImage, and create its copy - that way you won't "destroy" it.
As for the changing value there are methods setMaximum and setMinimum - add listener to list, as stated in Oracle tutorial and modify the values.
回答2:
As a concrete example of @Daniel's answer, the article Image processing with Java 2D describes the program ImageDicer. It constructs a TreeMap<String, BufferedImageOp>
each of which may be selected from a JComboBox
and applied to a BufferedImage
.
See also related examples here and here.
来源:https://stackoverflow.com/questions/12807151/changing-the-min-and-max-value-of-jslider-depanding-on-condition