Hai! Ich spiele gerade ein bisschen mit der paint()-Methode herum. Nun habe ich ein Bild auf einem JPanel, welches auch angezeigt wird. Jetzt würde ich das Bild gerne beim klicken verkleinern und meim loslassen der Maus wieder auf die alte Größe zurücksetzen. Leider passiert so ziemlich garnichts.
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
Java:
package com.sogomn;
import java.awt.Dimension;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
package com.sogomn;
import java.awt.Dimension;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
public class MyFrame implements MouseListener {
JFrame frame = new JFrame();
public MyFrame() {
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setPreferredSize(new Dimension(300, 300));
frame.setVisible(true);
frame.add(new Slime());
frame.pack();
frame.setLocationRelativeTo(null);
frame.addMouseListener(this);
frame.setFocusable(true);
}
public static void main(String[] args) {
new MyFrame();
}
@Override
public void mouseClicked(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
@Override
public void mousePressed(MouseEvent e) {
new Resize(100, 100);
}
@Override
public void mouseReleased(MouseEvent e) {
new Resize(250, 250);
}
}
Java:
package com.sogomn;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
public class Slime extends JPanel {
private static final long serialVersionUID = 1L;
ImageIcon slime = new ImageIcon("D:/Bilder/Slime.png");
Image slimeImg = slime.getImage();
@Override
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
super.paint(g);
g2d.drawImage(slimeImg, 10, 10, null);
}
}
Java:
package com.sogomn;
public class Resize {
public Resize(int x, int y) {
Slime slimeX = new Slime();
slimeX.slimeImg = slimeX.slimeImg.getScaledInstance(x, y, 1);
slimeX.repaint();
}
}
Zuletzt bearbeitet: