A
Andi231232s
Gast
Hallo,
ich hab da ein Problem. Und zwar möchte ich ein JLabel an irgendeine Position im Main-Frame verschieben können und diesen auch mit der Maus vergrößern und verkleiner. Das mit dem verschieben war eingentlich ganz einfach, das in echtzeit vergrößern bekomm ich aber nicht hin. Kann mir da einer Tipps geben? Gibts da vieleicht auch ne Methode wie "isResizable()" aber halt für Labels?
Hier mal das was ich hab:
Mfg
Andi
ich hab da ein Problem. Und zwar möchte ich ein JLabel an irgendeine Position im Main-Frame verschieben können und diesen auch mit der Maus vergrößern und verkleiner. Das mit dem verschieben war eingentlich ganz einfach, das in echtzeit vergrößern bekomm ich aber nicht hin. Kann mir da einer Tipps geben? Gibts da vieleicht auch ne Methode wie "isResizable()" aber halt für Labels?
Hier mal das was ich hab:
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MoveAndResize {
private JPanel mainP;
private JLabel xLab;
private int width;
private int height;
public MoveAndResize() {
mainP = new JPanel();
mainP.setBackground(Color.black);
mainP.setLayout(null);
xLab = new JLabel();
xLab.setLocation(300,300);
xLab.setSize(100,100);
xLab.setOpaque(true);
xLab.setBackground(Color.red);
xLab.setForeground(Color.white);
mainP.add(xLab);
setLabelText();
mainP.addMouseMotionListener(new MyMouseMotionListener());
xLab.addMouseMotionListener(new MyMouseMotionListener());
}
private void setLabelText() {
xLab.setText("Hallo");
}
private class MyMouseMotionListener implements MouseMotionListener {
public void mouseDragged(MouseEvent e) {
width = xLab.getWidth();
height = xLab.getHeight();
if(e.getSource() == xLab){
setPosition(e); }
}
private void setPosition(MouseEvent e) {
int neux = xLab.getLocation().x + e.getX() - width;
int neuy = xLab.getLocation().y + e.getY() - height;
xLab.setLocation(neux, neuy);
}
public void mouseMoved(MouseEvent e) {}
}
public JPanel getMainP() {
return mainP;
}
public static void main(String[] args) {
JFrame mainF = new JFrame("MoveAndResize");
mainF.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainF.setSize(600, 600);
MoveAndResize drag = new MoveAndResize();
mainF.getContentPane().add(drag.getMainP());
mainF.setVisible(true);
}
}
Andi