|
Na pressa foi o que deu para conseguir. Este c�digo
pode ser melhorado (e muito) mas espero que ajude.
import javax.swing.*;
import java.awt.*;
import java.awt.image.*; import java.awt.event.*; class Program0 extends JFrame
{
Image image_; int scale_ = 1; String descr_; Program0(String arg, int scale, String descr) { image_ = getImage(arg); scale_ = scale; descr_ = descr; setTitle("Program0"); setContentPane(createLayout()); setSize(300, 200); setVisible(true); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { dispose(); } }); } Program0(Image image, int scale, String descr) { image_ = image; scale_ = scale; descr_ = descr; setTitle("Program0"); setContentPane(createLayout()); setSize(300, 200); setVisible(true); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { dispose(); } }); } Image getImage(String imagePath) { Image image = getToolkit().getImage(imagePath); MediaTracker m = new MediaTracker(this); m.addImage(image, 0); try { m.waitForAll(); } catch (Exception e) { e.printStackTrace(); } return image; } public JPanel createLayout() { JPanel contentPane = new JPanel(); contentPane.setLayout(new BorderLayout()); contentPane.add(new ClickImage(image_, scale_, descr_)); return contentPane; } public static void main(String args[]) { if (args[0] == null) { error("Wrong number of arguments"); } new Program0(args[0], 1, ""); } static void error(String message) { System.err.println(message); System.exit(-1); } } class ClickImage extends Canvas
implements MouseListener {
Image image_; Image scaledImage; int scale_; String descr_; ClickImage(Image image, int scale, String descr) { image_ = image; scale_ = scale; descr_ = descr; addMouseListener(this); } public void paint(Graphics g) { int w = image_.getWidth(this); int h = image_.getHeight(this); if (w >= 0 || h >= 0) { if (scaledImage == null) { scaledImage = image_.getScaledInstance(w*scale_, h*scale_, Image.SCALE_SMOOTH); } } if (scaledImage != null) { g.drawImage(scaledImage, 0, 0, this); } int w1 = scaledImage.getWidth(this); int h1 = scaledImage.getHeight(this); g.drawString(descr_, ((w1/2) - descr_.length()), h1+20); } public void mouseClicked(MouseEvent e) { new Program0(scaledImage, 2, "Globo"); } public void mousePressed(MouseEvent e) {} public void mouseReleased(MouseEvent e){} public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} } // Rafael de Castro
Forte
|
