Facebook
From Paltry Owl, 4 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 153
  1. package labolatoria1;
  2.  
  3. import java.awt.*;
  4. import java.awt.event.*;
  5. import javax.swing.*;
  6. import javax.imageio.ImageIO;
  7. import java.awt.image.BufferedImage;
  8. import java.io.IOException;
  9.  
  10. public class Transforms2D extends JPanel {
  11.  
  12.         private class Display extends JPanel {
  13.                 protected void paintComponent(Graphics g) {
  14.                         super.paintComponent(g);
  15.                         Graphics2D g2 = (Graphics2D)g;
  16.                         g2.translate(300,300);  // Moves (0,0) to the center of the display.
  17.                         int whichTransform = transformSelect.getSelectedIndex();
  18.  
  19.                         switch(whichTransform) {
  20.                        
  21.                         case 0:
  22.                         break;
  23.                        
  24.                         case 1:
  25.                                 g2.scale(0.5, 0.5);
  26.                                 break;
  27.                                
  28.                         case 2:
  29.                         g2.rotate(Math.toRadians(45));
  30.                         break;
  31.                        
  32.                         case 3:
  33.                                 g2.rotate(Math.toRadians(100));
  34.                                 break;
  35.                                
  36.                         case 4:
  37.                                 g2.shear(0.25, 0);
  38.                                 break;
  39.                                
  40.                         case 5:
  41.                                 g2.scale(1, 0.5);
  42.                                 break;
  43.                        
  44.                         case 6:
  45.                                 g2.rotate(Math.toRadians(90));
  46.                                 break;
  47.                                
  48.                         case 7:
  49.                                 g2.rotate(Math.toRadians(100));
  50.                                 break;
  51.                                
  52.                         case 8:
  53.                                 g2.rotate(Math.toRadians(30));
  54.                                 break;
  55.                        
  56.                         }
  57.                        
  58.                         g2.drawImage(pic, -200, -150, null); // Draw image with center at (0,0).
  59.                 }
  60.         }
  61.  
  62.         private Display display;
  63.         private BufferedImage pic;
  64.         private JComboBox<String> transformSelect;
  65.  
  66.         public Transforms2D() throws IOException {
  67.                 pic = ImageIO.read(getClass().getClassLoader().getResource("shuttle.jpg"));
  68.                 display = new Display();
  69.                 display.setBackground(Color.YELLOW);
  70.                 display.setPreferredSize(new Dimension(600,600));
  71.                 transformSelect = new JComboBox<String>();
  72.                 transformSelect.addItem("None");
  73.                 for (int i = 1; i < 10; i++) {
  74.                         transformSelect.addItem("No. " + i);
  75.                 }
  76.                 transformSelect.addActionListener( new ActionListener() {
  77.                         public void actionPerformed(ActionEvent e) {
  78.                                 display.repaint();
  79.                         }
  80.                 });
  81.                 setLayout(new BorderLayout(3,3));
  82.                 setBackground(Color.GRAY);
  83.                 setBorder(BorderFactory.createLineBorder(Color.GRAY,10));
  84.                 JPanel top = new JPanel();
  85.                 top.setLayout(new FlowLayout(FlowLayout.CENTER));
  86.                 top.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));
  87.                 top.add(new JLabel("Transform: "));
  88.                 top.add(transformSelect);
  89.                 add(display,BorderLayout.CENTER);
  90.                 add(top,BorderLayout.NORTH);
  91.         }
  92.  
  93.  
  94.         public static void main(String[] args) throws IOException {
  95.                 JFrame window = new JFrame("2D Transforms");
  96.                 window.setContentPane(new Transforms2D());
  97.                 window.pack();
  98.                 window.setResizable(false);
  99.                 window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  100.                 Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
  101.                 window.setLocation( (screen.width - window.getWidth())/2, (screen.height - window.getHeight())/2 );
  102.                 window.setVisible(true);
  103.         }
  104.  
  105. }