Fehler in Bildbetrachtunsprogramm

Status
Nicht offen für weitere Antworten.

Kala

Mitglied
hi leute ich finde einfach nicht den fehler in meiner programmierung meines bildbetrachters :x könnt ihr mir helfen??
Code:
//Bildbetrachter
	import java.awt.*;
	import java.awt.event.*;
	
	public class Bildbetrachter extends Frame
	{
	//globale Variablen
		String Dateiname;  //name der Bilddatei
		Image akt_Bild; //referenz auf das akluelle bild
		Bild_canvas Bildanzeige;
		int xpos,ypos;
		int Bild_x1,Bild_y1,Bild_x2,Bild_y2;
		int Bild_Höhe,Bild_Breite;
		//Konstruktor
		Bildbetrachter (String titel) {
			super(titel);
			xpos = ypos = 0;
			Bild_x1 = Bild_x2 = Bild_y1 = Bild_y2 = 0;
			//kein bild geladen
			Datei = null;
			akt_Bild = null;
			//layout manager
			setLayout(new FlowLayout());
			//Canvas anlegen
			Bildanzeige = new Bild_canvas();
			add(Bildanzeige);
			//mit menu leiste
			MenuBar menüleiste = new MenuBar();
			setMenuBar(menüleiste);
			//die menüleiste (einträge)
			Menu menu1 = new Menu("Datei");
			MenuItem item1 = new MenuItem("Bild laden");
			MenuItem item2 = new MenuItem("Programm Beenden");
			menu1.add(item1);
			menu1.add(item2);
			menüleiste.add(menu1);
			//maus einstellungen
			class Mein_WindowAdapter extends WindowAdapter {
				public void windowClosing(WindowEvent e) {
			}
		}
			class Mein_ActionListener implements ActionListener{
				public void actionperformed(ActionEvent e) {
					String Label;
					Label = e.getActionCommand();
					if(Label.equals("Programm Beenden"))
						System.exit(0);
					if(Label.equals("Bild Laden"))
						Bild_laden();
		
				}
			}
//lausch-objekt registrieren
			addWindowListener(new Mein_WindowAdapter());
			menu1.addActionListener(new Mein_ActionListener());
		}
		//Bilddatei laden
		public void Bild_laden() {
			FileDialog d = new FileDialog(this,"C:\Dokumente und Einstellungen\Kalashnikov\Eigene Dateien\Eigene Bilder\tattoo5454.jpg",FileDialog.Load);
			d.show();
			Dateiname = d.getFile();
		}
		public static viod main(string[] args) {
			Bildbetrachter Fenster = new Bildbetrachter("Bildbetrachter");
			Fenster.pack();
			Fenster.show();
		}
		//leinwand
		class Bild_Canvas extends Canvas {
			//Konstruktor
			Bild_Canvas(){
			
			}
		public void paint(Graphics g) {
			//falls ein Bild geladen ist, das bild anzeigen
			if(akt_Bild != null)
				g.drawImage(akt_Bild,xpos,ypos,this);
		}
		//diese Methode liefert minimalgrösse der canvas
		public Dimension getMinimumSize() {
			return new Dimension(500,500);
			}
		//lieblingsgrösse = Minimalgrösse
		public Dimension getPreferredSite() {
			return getMinimumSize();
			}
		}
	}

Edit Illuvatar: Noch präziser wäre zwar schön aber: Titel präzisiert
 
supi - iss das ein Suchspiel, oder was?

Hast Du irgendeine Exception? Posten! Oder macht's was anderes, als es eigentlich
machen soll???
 
mastaa_2k hat gesagt.:
public static viod main(string[] args) {


viod ist kein mir bekannter Rückgabetyp!!!!!


🙂 :meld:

Sorry, aber void ist der Standartrückgabewert.....
Wie viele Programme hast du schon geschrieben, denn in der Main-Funktion wirst du wohl nicht um main herumkommen...

//edit: Muss ein Konstruktor nicht public sein, hab' noch nie gesehen, das der non-public ist? aber geht vielleicht auch... außerdem ist das Ding veraltet, statt Frame, nimmt man heute JFrame und show ist auch deprecated()
 
Ne ist keine Verarsche. Schau dir mal das Singleton-Paddern (FAQ) an, ist das beste Beispiel wo man den Konstruktor private macht.
 
genau das will man ja auch manchmal verhindern... stichwort factory.


Sorry, aber void ist der Standartrückgabewert.....
Wie viele Programme hast du schon geschrieben, denn in der Main-Funktion wirst du wohl nicht um main herumkommen...

lesen, denken, posten... im code stand viod und nicht void.


//edit: ich geh dann mal, stevg is eh immer schneller als ich. 😉
 
byto hat gesagt.:
Sorry, aber void ist der Standartrückgabewert.....
Wie viele Programme hast du schon geschrieben, denn in der Main-Funktion wirst du wohl nicht um main herumkommen...

lesen, denken, posten... im code stand viod und nicht void.


//edit: ich geh dann mal, stevg is eh immer schneller als ich. 😉


Aso, sowas müsste doch aber auch der Kompiler recht schnell merken....

Naja egal, ich dachte halt es wäre ein Rechtschreibfehler, von denen es ja bekanntlich viele in Threads gibt!
 
tippfehler im geposteten code? meinst du er hat den code hier per hand reingetippt? :roll:

//edit: wah, schon wieder der stevg! 😀

gute nacht 🙂
 
byto hat gesagt.:
tippfehler im geposteten code? meinst du er hat den code hier per hand reingetippt? :roll:

//edit: wah, schon wieder der stevg! 😀

gute nacht 🙂

Kompilerfehlermeldung? Naja, errare humanum est, wie ich ja bereits gesagt habe, man kann sich doch mal vertun!

Back to topic!
 
ja, irren ist menschlich. aber wenn man sich nicht sicher ist, sollte man zumindest diese seitenhiebe weglassen (gehören hier eigentlich generell nicht hin). und wers doch nicht lassen kann, sollte zumindest selbst mit kritik umgehen können.


kontext:
MPW hat gesagt.:
mastaa_2k hat gesagt.:
public static viod main(string[] args) {


viod ist kein mir bekannter Rückgabetyp!!!!!


🙂 :meld:

Sorry, aber void ist der Standartrückgabewert.....
Wie viele Programme hast du schon geschrieben, denn in der Main-Funktion wirst du wohl nicht um main herumkommen...
 
Code:
Bild_canvas // Unterstrich? lieber BildCanvas

//Canvas anlegen
Bildanzeige = new Bild_canvas();
add(Bildanzeige);  // hat die Grösse 0 :-)

Datei = null; // die Variable heisst Dateiname

Mein_ActionListener // Unterstrich? lieber MeinActionListener

public void actionperformed // die Methode heisst ActionPerformed

new FileDialog(this,"C:\D... // geht nicht, weil \ Escapezeichen

string[] args // muss String heissen

Fenster.show(); // lieber setVisible(true);

FileDialog.Load // es heisst LOAD und nicht Load

new MenuItem("Bild laden") 
Label.equals("Bild Laden")  // das geht sich nicht aus

if(Label.equals("Bild laden"))  Bild_laden(); 
// das lädt nur, wie solls denn angezeigt werden?, 
// es wird ja nur der name gesetzt...

akt_Bild = ImageIO.read(new File(d.getDirectory()
                    + File.separator + d.getFile()));
            this.invalidate();

in Bild_laden()
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben