Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
Ebook
/
Informatique
/
JAVA
/
Source_TLS
/
Move
:
GraphicalEditor.java
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
package e104.skeleton ; import javax.swing.JFrame ; import java.awt.Component ; import java.awt.Container ; import java.awt.Graphics2D ; import java.awt.Graphics ; import java.awt.Dimension ; import java.awt.Color ; import java.awt.Rectangle ; import java.awt.event.MouseAdapter ; import java.awt.event.MouseMotionAdapter ; import java.awt.event.MouseEvent ; class PersistentCanvas extends Component { Rectangle r = null ; PersistentCanvas() { } public void paint(Graphics graphics) { Graphics2D g = (Graphics2D)graphics ; g.setColor(getBackground()) ; g.fillRect(0, 0, getWidth(), getHeight()) ; if (r==null) return ; g.setColor(Color.LIGHT_GRAY) ; g.fill(r) ; g.setColor(Color.BLACK) ; g.draw(r) ; } } /** * @author Nicolas Roussel (roussel@lri.fr) * */ public class GraphicalEditor extends JFrame { private PersistentCanvas canvas ; public GraphicalEditor(String title, int width, int height) { super(title) ; Container pane = getContentPane() ; canvas = new PersistentCanvas() ; canvas.setBackground(Color.WHITE) ; canvas.setPreferredSize(new Dimension(width,height)) ; pane.add(canvas) ; canvas.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent evt) { int width=0, height=0 ; canvas.r = new Rectangle(evt.getX(), evt.getY(), width, height) ; canvas.repaint() ; } public void mouseReleased(MouseEvent evt) { canvas.r = null ; canvas.repaint() ; } }) ; canvas.addMouseMotionListener(new MouseMotionAdapter() { public void mouseDragged(MouseEvent evt) { if (canvas.r==null) return ; canvas.r.width = evt.getX() - canvas.r.x ; canvas.r.height = evt.getY() - canvas.r.y ; canvas.repaint() ; } }) ; pack() ; setVisible(true) ; } public static void main(String[] args) { GraphicalEditor editor = new GraphicalEditor("GraphicalEditor",800,600) ; editor.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ; } }