MouseListener - Events auf Mouseklick

Status
Nicht offen für weitere Antworten.

spider14102

Mitglied
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(); 
   }
   
 }
 

spider14102

Mitglied
und die ganzen mausoperationen am besten noch in eine eigene klasse namens mouse.java, das wär super. man soll also im buttonpanel ein bild anklicken können, und im mainwindow soll dann das jeweilige bild an der mausklick-position angezeigt werden...
 

Leroy42

Top Contributor
spider14102 hat gesagt.:
und die ganzen mausoperationen am besten noch in eine eigene klasse namens mouse.java, das wär super. man soll also im buttonpanel ein bild anklicken können, und im mainwindow soll dann das jeweilige bild an der mausklick-position angezeigt werden...

Du erwartest doch nicht etwa, das wir dir dein Programm vervollständigen? :shock:

Der Mouselistener hat nichts in der paint-Methode verloren, sondern
gehört in den Konstruktor:

Code:
public Start() {
  addMouseListener(new MouseAdapter() {
    public void mouseClicked(MouseEvent e) {
      // Mit den Koordinaten e.getX() und e.getY() irgendetwas machen
    }
  });
 

spider14102

Mitglied
ja ok aber wie sage ich, dass die mausklicks im panel "buttonPanel" ein event auslösen sollen, und dass diese dann im panel "mainwindow" etwas auslösen?
Code:
            	buttonPanel.add addMouseListener;
 

Leroy42

Top Contributor
Code:
public Start() { 
  buttonPanel.addMouseListener(new MouseAdapter() { 
    public void mouseClicked(MouseEvent e) { 
      // Mit den Koordinaten e.getX() und e.getY() das entsprechende
      // Bild aus buttonPanel "herausfriemeln" und dem mainPanel mitteilen
      // (hierzu muß mainPanel Instanz einer von JPanel abgeleiteten Klasse sein
      // damit dessen paintComponent()-Methode überschrieben werden kann)
      // Dann zum Abschluß mainPanel auffordern sich neu zu zeichnen:
      mainPanel.repaint();
    } 
  });
 

spider14102

Mitglied
hm soweit klappt das. ich hätte nur gerne dass - so wie es jetzt schon funzt - am programmstart alle felder im raster das bild "wiese.jpg" haben, und man - wenn man das jeweilige bild anklickt und dann auf ein feld im raster - genau in diesem feld das zuvor ausgewählte bild erscheint. momentan werden dann ALLE felder mit diesem bild ausgefüllt und nicht nur das angeklickte...wie lässt sich das realisieren?

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.MouseAdapter;
import java.awt.event.MouseEvent;
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);
      
             }
          } 
       } 

    }; 
    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); 
    
    
    buttonPanel.addMouseListener(new MouseAdapter() { 
        public void mousePressed(MouseEvent e) { 
        	boolean klick = false;
        	String belegung = null;

        	if(e.getX()>=22 && e.getX()<=101 && e.getY()>=90 && e.getY()<=130){			
  			   klick=true;
  			   belegung="\\bahnhof.gif";
  			   }
        	if(e.getX()>=20 && e.getX()<=60 && e.getY()>=134 && e.getY()<=174){			
   			   klick=true;
   			   belegung="\\gleis1.jpg";
   			   }
        	if(e.getX()>=65 && e.getX()<=105 && e.getY()>=134 && e.getY()<=174){			
    		   klick=true;
    		   belegung="\\gleis2.jpg";
    			   }
        	if(e.getX()>=20 && e.getX()<=60 && e.getY()>=179 && e.getY()<=219){			
    		   klick=true;
    		   belegung="\\gleis3.jpg";
    			   }
        	if(e.getX()>=65 && e.getX()<=105 && e.getY()>=179 && e.getY()<=219){			
 			   klick=true;
 			   belegung="\\gleis4.jpg";
 			   }
        	if(e.getX()>=20 && e.getX()<=60 && e.getY()>=224 && e.getY()<=264){			
    		   klick=true;
    		   belegung="\\gleis5.jpg";
    			   }
        	if(e.getX()>=65 && e.getX()<=105 && e.getY()>=224 && e.getY()<=264){			
 			   klick=true;
 			   belegung="\\gleis6.jpg";
 			   }
        	if(e.getX()>=20 && e.getX()<=60 && e.getY()>=269 && e.getY()<=309){			
    		   klick=true;
    	       belegung="\\wiese.jpg";
    			   }
        	if (e.getX()>=65 && e.getX()<=105 && e.getY()>=269 && e.getY()<=309){			
        		//RASTER EIN-/AUSBLENDEN
        	}
        	
        	 if(klick==true)
   		  	   {
   		  	   System.out.println("ok");
   		  	try 
   	       { 
   	          URL url = new File(belegung).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);
   	       mainwindow.repaint();
   		  	   }
   	
   	    addMouseListener(this);
   		}
        	
         });

}
    
    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(); 
   }
 

André Uhres

Top Contributor
Meinst du sowas:
Code:
package dnd;
/*
* DragPicturesDemo.java
*/
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*; 
import java.net.*;
import java.util.*;
import java.util.List;
import javax.imageio.*;
import javax.swing.*;
public class DragPicturesDemo extends JFrame {
    private JPanel selectedBildPanel;
    private JCheckBox gridSwitch;
    private BilderContainer bilderContainer;
    private boolean moveMode;
    private boolean showGrid = true;
    private int count;
    public DragPicturesDemo() {
        super("Drag Pictures Demo");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(800,605);
        setLocationRelativeTo(null);
        System.out.println("BITTE WARTEN..");
        bilderContainer = new BilderContainer();
        getContentPane().add(bilderContainer);
        System.out.println("OK");
        JToolBar tools = new JToolBar(getTitle() + " - Toolbar");
        getContentPane().add(tools, BorderLayout.NORTH);
        tools.add(new JLabel("<html><font color=blue>Ziehe ein Bild mit der Maus aus der letzten Spalte ins Raster.
" +
                "Oder ziehe ein Bild, das schon im Raster ist, mit der Maus in eine andere Position."));
        gridSwitch = new JCheckBox("Show grid", true);
        tools.add(gridSwitch);
        gridSwitch.addActionListener(new ActionListener() {
            public void actionPerformed(final ActionEvent e) {
                setShowGrid();
            }
        });
    }
    private void setShowGrid(){
        showGrid = gridSwitch.isSelected();
        bilderContainer.bilderAnzeigen();
    }
    public static void main(final String args[]) {new DragPicturesDemo().setVisible(true);}
   
    /*
     * Klasse BilderContainer - enthält alle anzuzeigenden Bilder:
     */
    class BilderContainer extends JPanel implements MouseListener, MouseMotionListener{
        private List bilderListe;
        private Cursor myPointer;
        final private int ROWS = 13;
        final private int COLUMNS = 16;
        public BilderContainer(){
            addMouseListener(this);
            addMouseMotionListener(this);
            setLayout(new GridLayout(ROWS, COLUMNS));
            //Bilderliste laden:
            bilderListe = new ArrayList();
            for (int i = 0; i < (ROWS*COLUMNS); i++) {
                if( i / COLUMNS == 0 && i % COLUMNS == COLUMNS-1){
                    bilderListe.add(new Bild("http://www.nzz.ch/images/wetter/radargross.jpg"));
                }else if( i / COLUMNS == 1 && i % COLUMNS == COLUMNS-1){
                    bilderListe.add(new Bild("http://images.thetimes.co.uk/TGD/picture/0,,223788,00.jpg"));
                }else{
                    bilderListe.add(null);//wiese.jpg
                }
            }
            bilderAnzeigen();
        }
        public void mousePressed(final MouseEvent evt) {
            setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR));
            buildMyPointer(((JPanel)evt.getSource()).getComponentAt(evt.getPoint()));
            selectedBildPanel = (JPanel) ((JPanel)evt.getSource()).getComponentAt(evt.getPoint());
        }
        public void mouseReleased(final MouseEvent evt) {
            if( moveMode ) move(evt);
            setCursor(Cursor.getDefaultCursor());
            moveMode = false;
        }
        public void mouseDragged(final MouseEvent evt) {
            setCursor(myPointer);
            moveMode = true;
        }
        public void mouseClicked(final MouseEvent evt) {        }
        public void mouseEntered(final MouseEvent evt) {}
        public void mouseExited(final MouseEvent evt) {}
        public void mouseMoved(final MouseEvent evt) {}
        //Hier wird ein Bild auf eine andere Position verschoben/kopiert:
        private void move(final MouseEvent evt){
            Component[] components = getComponents();
            JPanel panelFrom = selectedBildPanel;
            JPanel panelTo = (JPanel)((JPanel)evt.getSource()).getComponentAt(evt.getPoint());
            int positionFrom=0;
            int positionTo=0;
            for( int i=0; i<components.length; i++ ){
                if( components[i] == panelFrom ) positionFrom=i;
                if( components[i] == panelTo )   positionTo=i;
            }
            if(  positionTo % COLUMNS == COLUMNS-1 )return;
            Bild bild = (Bild) bilderListe.get(positionFrom);
            if(positionFrom % COLUMNS == COLUMNS-1){//Bild aus letzter Spalte?
                if(bild != null) bild = new Bild(bild.image);//ja, kopieren
            }else{
                bilderListe.set(positionFrom, null);//nein, verschieben
            }
            bilderListe.set(positionTo, bild);//Bild auf die neue Position setzen
            bilderAnzeigen();
        }
        //Hier werden alle Bilder der Bilderliste angezeigt
        private void bilderAnzeigen(){
            removeAll();
            JPanel panel = null;
            for (int i = 0; i < bilderListe.size(); i++) {
                Bild bild = (Bild) bilderListe.get(i);
                if(bild != null) panel = bild;
                else panel = new JPanel();
                add(panel);
                if(showGrid) panel.setBorder(BorderFactory.createLineBorder(Color.white));
                else panel.setBorder(BorderFactory.createEmptyBorder());
                if(isLastColumn(panel)) panel.setBorder(BorderFactory.createLineBorder(Color.black));
            }
            revalidate();
        }
        //Hier wird ein Mauszeiger gebaut, der das zu ziehende Bild darstellt:
        private void buildMyPointer(final Component component){
            BufferedImage image = new BufferedImage(component.getWidth(), component.getHeight(), BufferedImage.TYPE_INT_RGB);
            Graphics g = image.getGraphics();
            g.setColor(component.getBackground());
            g.fillRect(0, 0,  image.getWidth(), image.getHeight());
            component.print(g);
            g.dispose();
            Toolkit tk = Toolkit.getDefaultToolkit();
            myPointer= tk.createCustomCursor(image, new Point(10,10), "myPointer");
        }
        //Dies gibt true zurück wenn sich die Komponente "panel" in der letzten Spalte befindet:
        private boolean isLastColumn(final JPanel panel) {
            Container parent = panel.getParent();
            Component[] comps = parent.getComponents();
            for (int i = 0; i < comps.length; i++) {
                if(comps[i] == panel &&  i % COLUMNS == COLUMNS-1 ){
                    return true;
                }
            }
            return false;
        }
    }

    /*
     * Klasse Bild - zeichnet ein einzelnes Bild:
     */
    class Bild extends JPanel{
        private Image image;
        public Bild(final String pfad){
            System.out.println(++count);
            try{
                URL url = new URL(pfad);
                image = ImageIO.read(url);
                image = image.getScaledInstance(-1,43,Image.SCALE_SMOOTH);
            }catch(Exception ex){
                ex.printStackTrace();
            }
        }
        public Bild(final Image image){
            this.image = new ImageIcon(image).getImage();
        }
        public void paintComponent(final Graphics g) {
            super.paintComponent(g);
            g.drawImage(image,0,0,null);
        }
    }
}
 

spider14102

Mitglied
kann es leider nicht starten, es kommen unmengen von fehlern, u.a.:
- The type list is not generic
- Syntax error; parameterized types are only available if source level is 5.0

- java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.eclipse.ve.internal.java.vce.launcher.remotevm.JFCLauncher$1.run(JFCLauncher.java:59)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.Error: Unresolved compilation problems:
The method bilderAnzeigen() is undefined for the type BilderContainer
DragPicturesDemo cannot be resolved to a type
Nested type BilderContainer hides an enclosing type
Syntax error, parameterized types are only available if source level is 5.0
Syntax error, parameterized types are only available if source level is 5.0
Syntax error, 'for each' statements are only available if source level is 5.0

at BilderContainer.<init>(BilderContainer.java:43)
... 12 more
IWAV0052E Invocation Target Exception creating BilderContainer
 

Leroy42

Top Contributor
spider14102 hat gesagt.:
Syntax error; parameterized types are only available if source level is 5.0

Für Datentypen wie ArrayList<String> muß der Source-Level auf 5.0 (Java 1.5) gestellt werden,
welche Entwicklungsumgebung nutzt du denn?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P JFrame, Linien zeichnen, MouseListener Java Basics - Anfänger-Themen 2
H MouseListener klicks begrenzen Java Basics - Anfänger-Themen 4
H MouseListener begrenzen und Speichern Java Basics - Anfänger-Themen 1
V Problem - MouseListener/2DGraphics Java Basics - Anfänger-Themen 2
R Variablen MouseListener funktioniert auf anderen Pcs nur bedingt Java Basics - Anfänger-Themen 6
G MouseListener funktioniert nicht wie geplant Java Basics - Anfänger-Themen 4
GRAZZ0R MouseListener - Rechteck Bewegen Java Basics - Anfänger-Themen 1
R Variable Klassenübegreifend MouseListener Java Basics - Anfänger-Themen 0
D MouseListener funktioniert nach Timerstart nicht mehr Java Basics - Anfänger-Themen 9
J MouseListener für Schleifen-Objekte Java Basics - Anfänger-Themen 13
S vom JPanel aus durch Mouselistener Internet aufrufen Java Basics - Anfänger-Themen 6
S GUI ImageIcon Mouselistener Link Java Basics - Anfänger-Themen 0
P MouseListener funktioniert nicht Java Basics - Anfänger-Themen 6
J KeyListener,MouseListener,MouseMotionListener und static Java Basics - Anfänger-Themen 7
P Problem mit MouseListener Java Basics - Anfänger-Themen 4
T MouseListener, recht Taste Java Basics - Anfänger-Themen 2
M MouseListener funktioniert nicht Java Basics - Anfänger-Themen 9
E Mouselistener auf jTable Java Basics - Anfänger-Themen 18
B Variablen an MouseListener übergeben Java Basics - Anfänger-Themen 5
H MouseListener für ein eingefügtes Bild in einem JFrame Java Basics - Anfänger-Themen 7
H Mouselistener bei JTable Java Basics - Anfänger-Themen 4
G MouseListener für mehrere Buttons Java Basics - Anfänger-Themen 11
J MouseListener fuer gezeichnete Polyline Java Basics - Anfänger-Themen 3
L Label + MouseListener Java Basics - Anfänger-Themen 12
M MouseListener funkioniert auf JPanel nicht Java Basics - Anfänger-Themen 8
P Jtree MouseListener und NoCollapse Java Basics - Anfänger-Themen 2
M Schiebepuzzle: MouseListener und Graphics? Java Basics - Anfänger-Themen 6
M MouseListener Java Basics - Anfänger-Themen 2
kitz MouseListener Java Basics - Anfänger-Themen 8
B MouseListener & Graphics Java Basics - Anfänger-Themen 10
D Problem mit Mouselistener und jtable Java Basics - Anfänger-Themen 7
C fragen zu MouseListener Java Basics - Anfänger-Themen 3
M MouseListener funktioniert in jar-file nicht mehr Java Basics - Anfänger-Themen 13
F Logikproblem: Auf Mouselistener warten Java Basics - Anfänger-Themen 6
E Auf Mouselistener warten?! Java Basics - Anfänger-Themen 20
S Probleme mit 2 mouselistener Java Basics - Anfänger-Themen 6
A Frage zu MouseListener Java Basics - Anfänger-Themen 2
D Mouselistener Java Basics - Anfänger-Themen 2
A jPanel an MouseListener übergeben? Java Basics - Anfänger-Themen 2
S Swing JEditoPane MouseListener Java Basics - Anfänger-Themen 5
M Mouselistener Java Basics - Anfänger-Themen 4
S MouseListener funzt net. Java Basics - Anfänger-Themen 5
G MouseListener double click? Java Basics - Anfänger-Themen 1
V MouseListener Java Basics - Anfänger-Themen 5
M MouseListener Java Basics - Anfänger-Themen 3
N Mouselistener? Java Basics - Anfänger-Themen 5
T ein MouseListener pro Objekt sinnvoll? Java Basics - Anfänger-Themen 4
F MouseListener - Unhandled IOException Java Basics - Anfänger-Themen 2
U MouseListener Java Basics - Anfänger-Themen 2
L Array von Buttons, jeder soll MouseListener haben Java Basics - Anfänger-Themen 5
L MouseListener Problem. Java Basics - Anfänger-Themen 2
S mouselistener Java Basics - Anfänger-Themen 3
N MouseListener Java Basics - Anfänger-Themen 2
J MouseListener implementieren Java Basics - Anfänger-Themen 12
P MouseListener wird anscheinend nicht benutzt Java Basics - Anfänger-Themen 12
N MouseListener - reagiert zu spät Java Basics - Anfänger-Themen 3
D JList - Textzeilen MouseListener zuweisen Java Basics - Anfänger-Themen 4
M prüfen ob mouselistener gesetzt ist. Java Basics - Anfänger-Themen 10
O image und mouseListener Java Basics - Anfänger-Themen 15
W MouseListener Probleme beim Abfangen Java Basics - Anfänger-Themen 8
P Kann keinen MouseListener hinzufügen Java Basics - Anfänger-Themen 3
G MouseListener einbauen - wie? Java Basics - Anfänger-Themen 4
I Ical4j - Lazy Loading von Events? Java Basics - Anfänger-Themen 2
D Events verarbeiten Java Basics - Anfänger-Themen 1
nonickatall Erste Schritte Events Dokumentation/Tutorial Java Basics - Anfänger-Themen 1
K die Source eines Events bei verschiedenen Quellen herausfinden Java Basics - Anfänger-Themen 1
M Best Practice Events für jeden, oder für die Allgemeinheit "registrieren"? Java Basics - Anfänger-Themen 5
O Wie Log4J - Ausgaben/Events auffangen?! Java Basics - Anfänger-Themen 3
Thallius Best Practice Events zwischen eigenen Klassen Java Basics - Anfänger-Themen 2
G Events schreiben, solange Programm läuft Java Basics - Anfänger-Themen 6
H [JAVA] NetBeans GUI Builder - Events Java Basics - Anfänger-Themen 10
G Erste Schritte Window Events in Java Java Basics - Anfänger-Themen 6
Y Events auslösen Java Basics - Anfänger-Themen 11
T fenster schliesen und mouse events in einer nicht abstrakten klasse Java Basics - Anfänger-Themen 6
S Dauer eines Events anhandUnterschied berechnen? Java Basics - Anfänger-Themen 3
Nicer Maus Events Java Basics - Anfänger-Themen 2
H Listener und Events entfernen Java Basics - Anfänger-Themen 2
R wieso Nullpoint und was mit Events ? Java Basics - Anfänger-Themen 14
F Reihenfolge in der Events abgearbeitet werden Java Basics - Anfänger-Themen 2
Luk10 Problem mit vielen Timer(-Events) Java Basics - Anfänger-Themen 17
B Events behandeln Java Basics - Anfänger-Themen 4
A Events werfen/feuern wenn bestimtm methode ausgeführt wird Java Basics - Anfänger-Themen 3
E import org.eclipse.swt.Events.PaintListener; Java Basics - Anfänger-Themen 1
M Urheber von Events ermitteln Java Basics - Anfänger-Themen 5
S Eigene Events werfen? Java Basics - Anfänger-Themen 6
G Events manuell aulösen Java Basics - Anfänger-Themen 3
C Listener und Events Java Basics - Anfänger-Themen 10
D Events nicht bei den jeweiligen Objekten? Java Basics - Anfänger-Themen 3
G PropertyChangeListener empfängt Events doppelt Java Basics - Anfänger-Themen 5
F Eigene Klasse für Events Java Basics - Anfänger-Themen 10
G Events Java Basics - Anfänger-Themen 8
S Keylistener-Events hochreichen Java Basics - Anfänger-Themen 4
H Problem mit Events bzw. Referenzen Java Basics - Anfänger-Themen 4
H Events Java Basics - Anfänger-Themen 5
G Loop blockt alle Events Java Basics - Anfänger-Themen 7
D Probleme mit key events Java Basics - Anfänger-Themen 6
S Events Java Basics - Anfänger-Themen 11
D Events Java Basics - Anfänger-Themen 4
G Events Java Basics - Anfänger-Themen 2
E Events nicht an aufrufendes Objekt schicken Java Basics - Anfänger-Themen 23

Ähnliche Java Themen

Neue Themen


Oben