1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
| import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.*;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileNameExtensionFilter;
import javax.swing.filechooser.FileSystemView;
public class Rectangles extends JFrame implements ActionListener
{
int choice = 0;
private static final int BI_WIDTH = 600;
private static final int BI_HEIGHT = BI_WIDTH;
private static BufferedImage bImage = new BufferedImage(BI_WIDTH, BI_HEIGHT, BufferedImage.TYPE_INT_ARGB); //Enregistrement de l'image en RGBA
JButton square = new JButton("Square");
JButton rectangle = new JButton("Rectangle");
JButton circle = new JButton("Circle");
JButton open= new JButton ("Open");
JButton save= new JButton ("Save");
Drawing draw = new Drawing();
JLabel label = new JLabel();
JPanel panel = new JPanel();
public Rectangles()
{
JFrame frame = new JFrame("Draw Shapes");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
square.addActionListener(this);
rectangle.addActionListener(this);
circle.addActionListener(this);
open.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFileChooser file = new JFileChooser();
file.setCurrentDirectory(new File(System.getProperty("user.home")));
//filter the files
FileNameExtensionFilter filter = new FileNameExtensionFilter("*.Images", "jpg","gif","png");
file.addChoosableFileFilter(filter);
int result = file.showOpenDialog(null);
//if the user click on save in Jfilechooser
if(result == JFileChooser.APPROVE_OPTION){
File selectedFile = file.getSelectedFile();
String path = selectedFile.getAbsolutePath();
label.setIcon(ResizeImage(path));
}
//if the user click on save in Jfilechooser
else if(result == JFileChooser.CANCEL_OPTION){
System.out.println("No File Select");
}
}
});
save.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFileChooser filechooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter("PNG Images", "png");
filechooser.setFileFilter(filter);
int result = filechooser.showSaveDialog(null);
if (result == JFileChooser.APPROVE_OPTION) {
File saveFile = filechooser.getSelectedFile();
try {
ImageIO.write(bImage, "png", saveFile);
} catch (IOException e1 ) {
e1.printStackTrace();
}
}
} });
panel.add(square);
panel.add(rectangle);
panel.add(circle);
circle.add(label);
panel.add(open);
panel.add(label);
panel.add(draw);
frame.add(panel, "North");
frame.add(draw);
frame.add(label);
frame.setSize(500,500);
frame.setVisible(true);
}
public ImageIcon ResizeImage(String ImagePath)
{
ImageIcon MyImage = new ImageIcon(ImagePath);
Image img = MyImage.getImage();
Image newImg = img.getScaledInstance(label.getWidth(), label.getHeight(), Image.SCALE_SMOOTH);
ImageIcon image = new ImageIcon(newImg);
return image;
}
public void actionPerformed(ActionEvent e)
{
if (e.getSource()== square)
choice = 1;
else if (e.getSource()== rectangle)
choice = 2;
else if (e.getSource()== circle)
choice = 3;
draw.repaint();
}
class Drawing extends JComponent
{
public void paint(Graphics g)
{
super.paintComponent(g);
g.setColor(Color.red);
if (choice == 1)
g.fillRect(100,80,300,300);
else if (choice == 2)
g.fillRect(50,200,350,100);
else if (choice == 3)
g.fillOval(150,100,200,200);
}
}
public static BufferedImage getBufferedImage() {
return bImage;
}
public static void main(String[] args)
{
new Rectangles();
}
} |
Partager