Hallo, kann mir jemand bei meinem Programm helfen, die Einbindung der Maus-Funktionen ist nicht so ganz einfach...:
Code:
import java.awt.Button;
import java.awt.CheckboxMenuItem;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.Paint;
import java.awt.Panel;
import java.awt.TexturePaint;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
public class Start extends Frame implements ActionListener {
boolean paintCor = false;
BufferedImage image;
Paint texture;
Panel mainwindow = new Panel(){
private static final long serialVersionUID = 5122338618658110664L;
public void paint(Graphics g){
super.paint(g);
Graphics2D g2 = (Graphics2D) g;
int w = getWidth();
int h = getHeight();
g2.setPaint(texture);
g2.fillRect(0, 0, w, h);
if (paintCor){
g.setColor(Color.white);
int i=0,j=0;
while (i<=630){
i=i+41;
g.drawLine(i,0,i,530);
}
while (j<=545){
j=j+41;
g.drawLine(0,j,615,j);
mainwindow.addMouseListener;
super("Mouse Actions");
new MouseListener() {
public void mousePressed(MouseEvent e) {
System.out.println("press");
}
public void mouseReleased(MouseEvent e) {
System.out.println("release");
}
public void mouseClicked(MouseEvent e) {
System.out.println("click");
}
public void mouseEntered(MouseEvent e) {
System.out.println("enter");
}
public void mouseExited(MouseEvent e) {
System.out.println("exit");
}
}
}
}
}
};
CheckboxMenuItem showCor= new CheckboxMenuItem("Koordinaten ein-/ausblenden");
public Start() {
super();
loadimage();
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) {
System.exit(0);
}
});
setSize(800, 605);
setLocation(1, 1);
setTitle("Model Railway 1.0");
Button button1 = new Button();
Button button2 = new Button();
Button button3 = new Button();
final Panel framePanel;
framePanel = new Panel();
framePanel.setLayout(null);
Panel buttonPanel = new Panel();
buttonPanel.setBounds (650, 10, 125, 530);
Color menuecolor=new Color(228,255,130);
buttonPanel.setBackground(menuecolor);
button1 = new Button(" Bahn starten ");
button2 = new Button(" Bahn stoppen ");
button3 = new Button("Strecke überprüfen");
ImageIcon bahnhof = new ImageIcon( "\\bahnhof.gif" );
JLabel label1=new JLabel(bahnhof);
ImageIcon gleis1 = new ImageIcon( "\\gleis1.jpg" );
JLabel label2=new JLabel(gleis1);
ImageIcon gleis2 = new ImageIcon( "\\gleis2.jpg" );
JLabel label3=new JLabel(gleis2);
ImageIcon gleis3 = new ImageIcon( "\\gleis3.jpg" );
JLabel label4=new JLabel(gleis3);
ImageIcon gleis4 = new ImageIcon( "\\gleis4.jpg" );
JLabel label5=new JLabel(gleis4);
ImageIcon gleis5 = new ImageIcon( "\\gleis5.jpg" );
JLabel label6=new JLabel(gleis5);
ImageIcon gleis6 = new ImageIcon( "\\gleis6.jpg" );
JLabel label7=new JLabel(gleis6);
ImageIcon wiese = new ImageIcon( "\\wiese.jpg" );
JLabel label8=new JLabel(wiese);
ImageIcon raster = new ImageIcon( "\\raster.jpg" );
JLabel label9=new JLabel(raster);
buttonPanel.add(button1);
buttonPanel.add(button2);
buttonPanel.add(button3);
buttonPanel.add(label1);
buttonPanel.add(label2);
buttonPanel.add(label3);
buttonPanel.add(label4);
buttonPanel.add(label5);
buttonPanel.add(label6);
buttonPanel.add(label7);
buttonPanel.add(label8);
buttonPanel.add(label9);
mainwindow.setBounds(15, 10, 615, 530);
//Color grass=new Color(69,139,0);
//mainwindow.setBackground(grass);
framePanel.add(mainwindow);
framePanel.add(buttonPanel);
add(framePanel);
createMenu();
setVisible(true);
}
private void createMenu() {
MenuBar hauptMenue = new MenuBar();
Menu menue1 = new Menu("Datei");
Menu menue2 = new Menu("Optionen");
Menu menue3 = new Menu("Hilfe");
menue1.add("Neu");
menue1.add("Laden");
menue1.add("Speichern");
menue1.addSeparator();
menue1.add("Beenden");
menue2.add("Bahn starten");
menue2.add("Bahn stoppen");
menue2.addSeparator();
showCor.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent arg0)
{
paintCor = showCor.getState();
mainwindow.repaint();
}
});
menue2.add(showCor);
menue3.add("Über...");
menue3.add("Hilfethemen");
hauptMenue.add(menue1);
hauptMenue.add(menue2);
hauptMenue.add(menue3);
hauptMenue.setHelpMenu(menue3);
setMenuBar(hauptMenue);
menue1.addActionListener(this);
}
private void loadimage(){
try
{
URL url = new File("\\wiese.jpg").toURL();
image = ImageIO.read(url);
}
catch (Exception mue)
{
mue.printStackTrace();
}
Rectangle2D r = new Rectangle2D.Double(0, 0, image.getWidth(), image.getHeight());
texture = new TexturePaint(image, r);
}
public void actionPerformed(ActionEvent evt) { // Programm beenden
if (evt.getSource() instanceof MenuItem) {
String menuAdd = evt.getActionCommand();
if (menuAdd == "Beenden")
System.exit(0);
}
}
public static void main(String args[]) {
Start f = new Start();
}
}