moin Leute,
Ich habe folgendes Probelm:
Die folgende Klasse gibt mir mit getX und getY über den MouseListener die Kordinaten wo man geklickt hat.
Aber er zählt den Rand und das Menü mit also so das die kleinste Angebe ~6,54 ergibt.
Dort soll es aber mit 0,0 beginnen.
Was kann Ich da machen?
Ich habe folgendes Probelm:
Die folgende Klasse gibt mir mit getX und getY über den MouseListener die Kordinaten wo man geklickt hat.
Aber er zählt den Rand und das Menü mit also so das die kleinste Angebe ~6,54 ergibt.
Dort soll es aber mit 0,0 beginnen.
Was kann Ich da machen?
Code:
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
public class Blahhh
extends JFrame
implements ActionListener,
MouseListener
{
public Blahhh()
{
addWindowListener(new WindowClosingAdapter(true));
JMenuBar menubar = new JMenuBar();
menubar.add(Menue_Datei());
menubar.add(Menue_Hilfe());
setJMenuBar(menubar);
addMouseListener(this);
}
private JMenu Menue_Datei()
{
JMenu ret = new JMenu("Datei");
ret.setMnemonic('D');
JMenuItem mi;
//Speichern
mi = new JMenuItem("Speichern");
setCtrlAccelerator(mi, 'S');
mi.addActionListener(this);
ret.add(mi);
ret.addSeparator();
//Beenden
mi = new JMenuItem("Beenden", 'e');
mi.addActionListener(this);
ret.add(mi);
return ret;
}
private JMenu Menue_Hilfe()
{
JMenu ret = new JMenu("Hilfe");
ret.setMnemonic('H');
JMenuItem mi;
//Speichern
mi = new JMenuItem("Info");
mi.addActionListener(this);
ret.add(mi);
return ret;
}
private void setCtrlAccelerator(JMenuItem mi, char acc)
{
KeyStroke ks = KeyStroke.getKeyStroke(acc, Event.CTRL_MASK);
mi.setAccelerator(ks);
}
public static void main(String[] args)
{
Blahhh oberflaeche = new Blahhh();
oberflaeche.setBackground(Color.black);
oberflaeche.setLocation(250, 250);
oberflaeche.setSize(600, 600);
oberflaeche.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals("Beenden"))
{
System.exit(0);
}
if(e.getActionCommand().equals("Speichern"))
{
System.out.println("!!!!!!!!!!!");
}
}
public void mouseClicked(MouseEvent e)
{
if(e.getX() <= 600 && e.getY() <= 600)
{
System.out.println("Kordinaten: "+ e.getX() +","+ e.getY());
}
}
public void mouseEntered(MouseEvent e)
{
}
public void mouseExited(MouseEvent e)
{
}
public void mousePressed(MouseEvent e)
{
}
public void mouseReleased(MouseEvent e)
{
}
}