Ich habe eine Aufgabe, um eine Anwendung zu machen, die Folgendes tun wird: Wenn ich eine Maus bewege, sollten die Koordinaten in der Statusleiste angezeigt werden Wenn Maus geklickt wird, dann die einzige Taste, die eingeschaltet ist ein JPanel sollte auf Koordinaten Klick bewegen, so ist das Problem, dass, wenn ich per Mausklick tun - es ist in Ordnung, Schaltfläche von Klick auf coord bewegt, aber wenn ich die Maus bewegen beginnen die Taste kommt in die ursprüngliche Position zurückMove button auf JFrame Java
public class Window extends JFrame {
private JLabel statusBar;
private JPanel mainPanel, statusBarPanel;
JButton button;
public Window()
{
super("Window");
setSize(400,600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainPanel=new JPanel();
statusBarPanel = new JPanel();
statusBar=new JLabel("Coords: ");
add(statusBarPanel, BorderLayout.SOUTH);
add(mainPanel,BorderLayout.CENTER);
mainPanel.setBorder(new BevelBorder(BevelBorder.LOWERED));
statusBarPanel.add(statusBar,BorderLayout.CENTER);
button = new JButton("Default text");
mainPanel.add(button);
MyMouseListener myMouseListener=new MyMouseListener();
mainPanel.addMouseMotionListener(new MouseMotionAdapter() {
@Override
public void mouseMoved(MouseEvent e) {
super.mouseMoved(e);
statusBar.setText("Coords: ("+e.getX()+":"+e.getY()+")");
}
});
mainPanel.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
super.mouseClicked(e);
button.setLocation(e.getX()-button.getWidth()/2,e.getY()-button.getHeight()/2);
}
});
mainPanel.setFocusable(true);
setVisible(true);
}
}
bemerkt, dass ich MyMouseListener myMouseListener = new MyMouseListener() löschen vergessen; – CameronCoob
so vergiss es – CameronCoob