kompletter anfänger

Status
Nicht offen für weitere Antworten.

wolf360

Mitglied
erstmal Hi bin neu hier im Forum und arbeite mich seit gestern durch das openbook von Galileocomputing.

Da ich bereits ein bisschen Programmiererfahrung von JavaScript/C++/C# hab, hab ich mir mal erlaubt ein paar Kapitel zu überspringen...

Ich hab mich erstmal ein bisschen eingelesen und wollt mich dann sofort mit der Grafischen Programmierung befassn blos da haut net mal der Anfang hin..-.-"

package com.tutego.insel.ui.swing;

Code:
package com.tutego.insel.ui.swing; 
 
import javax.swing.JFrame; 
 
public class HelloSwingFrame 
{ 
  public static void main( String[] args ) 
  { 
    JFrame f = new JFrame( "Das Fenster zur Welt" ); 
    f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); 
    f.setSize( 300, 200 ); 
    f.setVisible( true ); 
  } 
}

wenn ich des einfüge kommt bei mir der Fehler:
The declared package "com.tutego.insel.ui.swing" does not match the expected package ""

was muss ich machen??

gruß wolf360
 

Verjigorm

Top Contributor
package com.tutego.insel.ui.swing; entfernen wär ne Lösung ;)
und eigenen packagenamen einfügen

Und lesen, was es mit packages auf sich hat ...


edit: du benutzt wohl das "default package" also kannst die ganze Zeile einfach weglassen
 

wolf360

Mitglied
omg xD des war alles........-.-" peinlich hey...

an solchen momenten merk ich mal wieder das man das mit dem Kapitel überspringen wohl doch net machn sollte..-.-"

danke für die hilfe

gruß wolf360
 

wolf360

Mitglied
okey nächste frage wo ich iwie auf der Leitung steh:

Code:
interface Buyable 
{ 
  double price(); 
}


public class Magazine extends GameObject implements Buyable 
{ 
  double price; 
 
  @Override public double price() 
  { 
    return price; 
  } 
}

was bewirkt genau implements?? Heißt das nicht das ich die Schnittstelle in die classe einfüge???

hier mal ein beispiel von mir:

Code:
interface test{	
	int lol = 20;	
}

class neu implements test{
	
	@Override public double lol; 
	
}

blos da kommt folgende Fehlermeldung:

The annotation @Override is disallowed for this location

gruß wolf360
 
M

maki

Gast
@Override heisst, dass eine Methode überschrieben wird.
Wenn du ein Interface implementierst, überschreibst du genaugenommen keine Mehtode, deswegen der Fehler, zumindest in Java 5, in Java 6 ist das erlaubt.
 

diggaa1984

Top Contributor
mit extends kannst du auf bereits vorhandene Methoden der Oberklasse zugreifen oder die Oberklasse um gewisse Funktionalitäten erweitern oder ändern. Die Oberklasse kann auch Methoden vorschreiben, welche die Unterklasse mit Leben füllen muss.

bei implements musst du alle Methoden selbst umsetzen.

in deinem bsp hat die Oberklasse das interface nicht implementiert. Der einzige Nutzen der Unterklasse Magazin besteht darin, das du alle Methoden der Oberklasse erbst, aber zusätzlich noch nen Interface implementierst. Somit ist Magazin nach aussen hin GameObject und Buyable. Ohne Buyable könntest das Magazin also net kaufen :D
 

wolf360

Mitglied
is das kompliziert....-.-"

nochma ein beispiel:
Code:
package com.tutego.insel.ui.event; 
 
import javax.swing.*; 
import java.awt.event.*; 
 
class CloseWindowImplementsAll extends JFrame implements WindowListener 
{ 
  // Implementiere WindowListener 
 
  public void windowClosing( WindowEvent event ) 
  { 
   System.exit( 0 ); 
  } 
 
  public void windowClosed( WindowEvent event ) { /*Empty*/ } 
  public void windowDeiconified( WindowEvent event ) { /*Empty*/ } 
  public void windowIconified( WindowEvent event ) { /*Empty*/ } 
  public void windowActivated( WindowEvent event ) { /*Empty*/ } 
  public void windowDeactivated( WindowEvent event ) { /*Empty*/ } 
  public void windowOpened( WindowEvent event ) { /*Empty*/ } 
 
  // 
 
  CloseWindowImplementsAll() 
  { 
    setSize( 400, 400 ); 
    addWindowListener( this ); 
    setVisible( true ); 
  } 
 
  public static void main( String[] args ) 
  { 
    new CloseWindowImplementsAll(); 
  } 
}

hab ichs richtig verstandn:
mit extrends JFrame übergebe ich in desm Beispiel alle Methoden von JFrame an die Klasse CloseWindowImplementsAll ??

und mit implements WindowListener übergeb ich die eigenschaften an die Klasse CloseWindowImplementsAll aber die Methoden muss ich selber "erstellen"?
 
M

maki

Gast
Lies ein Anfängerbuch, die Kapitel mit den absoluten Grundlagen... OOP lernt man nicht durch trial&error.
 

diggaa1984

Top Contributor
ich denke diese extends und implements-geschichte ist für jeden oop-anfänger ein wenig undurchsichtig, aber wenn man sich n bissel mit der Materie auseinandersetzt, dann kommt man auch hinter die grundidee des ganzen.
 

wolf360

Mitglied
naja xD ich bin ezt dabei mal das Buch wirklich von anfang an durch zugehn!

schätz mal das wird des beste sein und ich werd einiges besser verstehen!
 
G

Gast

Gast
Darüber hinaus gilt:
Programmieren lernt man nur durch programmieren!
(Schönes Zitat von jmd. hier im Forum)
 

wolf360

Mitglied
ja ich teste auch viel.... blos es gibt immer so abschnitte wo ich gar nix kappier...

zz bei Klassen, bei allen Programmiersprachen (JavaScript, C++, C#) wo ich angelernt bzw gelernt habe war immer das meine größtes problem...

und z.B. bei Java kappier a bissl... aber bei Swing/Events kappier ich gar nix mehr mit dem anmelden, listene etc.....

gruß wolf360
 

wolf360

Mitglied
okey langsam kappier ich um was es geht xD

aber was genau @Override bringt hab ich noch nicht so ganz verstanden.

und gleich nochmal ein paar Frage zu dem Beispiel:
Code:
package com.tutego.insel.ui.event; 
 
import javax.swing.*; 
import java.awt.event.*; 
 
class CloseWindowImplementsAll extends JFrame implements WindowListener 
{ 
  // Implementiere WindowListener 
 
  public void windowClosing( WindowEvent event ) 
  { 
   System.exit( 0 ); 
  } 
 
  public void windowClosed( WindowEvent event ) { /*Empty*/ } 
  public void windowDeiconified( WindowEvent event ) { /*Empty*/ } 
  public void windowIconified( WindowEvent event ) { /*Empty*/ } 
  public void windowActivated( WindowEvent event ) { /*Empty*/ } 
  public void windowDeactivated( WindowEvent event ) { /*Empty*/ } 
  public void windowOpened( WindowEvent event ) { /*Empty*/ } 
 
  // 
 
  CloseWindowImplementsAll() 
  { 
    setSize( 400, 400 ); 
    addWindowListener( this ); 
    setVisible( true ); 
  } 
 
  public static void main( String[] args ) 
  { 
    new CloseWindowImplementsAll(); 
  } 
}

extends JFrame füge ich grob gesagt alle Eigenschaftn von JFrame in CloseWindowImplementsAll ein damit ich se da verwenden kann.

und mit implements WindowListener füge ich das interface ein und damit den "Kopf" von den ganz funktionen...

lieg ich da richtig?

und mit CloseWindowImplementsAll() erstell ich einen Konstruktor oder ?

Wenn das der Konstruktor ist, müsste er nicht ganz am anfang stehn, oder ist es egal wo der "eigene" Konstruktor steht?

gruß wolf360
 

ARadauer

Top Contributor
extends JFrame füge ich grob gesagt alle Eigenschaftn von JFrame in CloseWindowImplementsAll ein damit ich se da verwenden kann.
ja grob


Wenn das der Konstruktor ist, müsste er nicht ganz am anfang stehn, oder ist es egal wo der "eigene" Konstruktor steht?
es ist egal wo die methoden stehen, wenn die Mthode so heißt wie die klasse und keinen Rückgabewert hat, ist es ein konstuktor

nochwas zu den interfaces, ein Interface ist dazu dar, um sicher zu gehen, das gewisse objekte gewisse eigenschaften besitzen...
CloseWindowImplementsAll muss windowClosed usw.. haben damit, es als WindowsListener arbeiten kann...
 

ARadauer

Top Contributor
aja mach dir keine sorgen, wenn dir die sinnhaftigkeit von interfaces noch nicht ganz klar ist.. wenn man sich später mal mit großen objekt orientieren systemen und patterns beschäftigt wird klarer...
 

wolf360

Mitglied
okey hab etz mal a bissl rumprobiert und stoß scho auf die nächste Frage:
Code:
class maus extends MouseAdapter
{
	JButton button;
	
		@Override
	public void mouseClicked(MouseEvent e) {
		if(e.getClickCount() > 2){
			 button.setText("lol");
		}
	}
	
}




public class test1 
{ 
  public static void main( String[] args ) 
  { 
	  JFrame test = new JFrame("testttest");
	  test.setSize(500, 500);
	  JButton t = new JButton("Hallo");
	  test.add(t);
	  test.setVisible(true);
	  
	  maus neu = new maus();
	  neu.button=t;
	  neu.mouseClicked();

  } 
}
Diese funktion funktioniert weil ich keinen Type bei neu.mouseCklicked(); angebe.... Ich steh da abba auch voll auf der Leitung und wüsste etz gar net was ich da angeben könnte?

Wie muss ich es ändern damit alles funktioniert?
 

diggaa1984

Top Contributor
solche Funktionen werden zB vom Swing-Framework selbst aufgerufen durch eine Hierarchie von Aktionen .. da brauchst diese nicht explizit selbst aufrufen. den Maus-Adapter musst dafür vermutlich an eine Komponente hängen, welche damit umgehen kann. hab noch nicht explizit mit MouseAdapter gearbeitet als das ich dazu mehr sagen könnte. Aber bin mir sicher das es automatisiert abläuft, was du in der main noch heraufbeschwörst (Aufruf der clicked-Methode) :D
 
G

Guest

Gast
Code:
import java.awt.BorderLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;


public class Demo extends JFrame{
	private int counter = 0;
	private JLabel label;
	public Demo(){
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.getContentPane().setLayout(new BorderLayout());
		
		label = new JLabel();
		JButton button = new JButton("Drück mich");
		button.addMouseListener(new MyMouseListener());
		this.add(button,BorderLayout.NORTH);
		this.add(label,BorderLayout.CENTER);

		this.pack();
		this.setSize(300, 200);
		this.setVisible(true);
	}

	public static void main(String[] args) {	
		SwingUtilities.invokeLater(new Runnable(){
			public void run(){
				new Demo();
			}
		});
	}
	
	class MyMouseListener extends MouseAdapter{
		@Override
		public void mouseClicked(MouseEvent e){ 
			counter++;
			label.setText("Button wurde "+counter+" mal gedrückt");			
		}
	}
}

Und bitte ein paar Programmierkonventionen beachten: Klassennamen groß schreiben...
 

wolf360

Mitglied
achso etzala.... danke für die Hilfe!

Edit:
kann man irgendwie "Testen" welches objekt gerade Aktiv ist?

weil ich habs glaub ich doch noch nicht verstandn...-.-"
 

The_S

Top Contributor
aktiv ist das Objekt, in dem this aufgerufen wird. Also das aktive Objekt ist das Objekt, in dem this verwendet wird.
 

diggaa1984

Top Contributor
Code:
public class Test {
    
    String s;

    //Konstruktor
    public Test(String s) {
        this.s = s;
    }

    public void print() {
        System.out.println(s);
    }

    public static void main(String[] args) {
        Test hallo = new Test("Hallo");
        Test tschuess = new Test("Tschuess");

        hallo.print();
        tschuess.print();
    }
}

vielleicht so besser? ^^
das Objekt was grad den Kontrollfluss in den Konstruktor lenkt ist in dem Sinne das aktive Objekt, welches mittels "this" referenziert wird - Also entweder das Objekt, was durch "hallo" oder "tschuess" referenziert wird.
 

wolf360

Mitglied
okey nächste Frage:

Wenn ich jetzt z.B einem Fesnter mit add(), ein Textfeld (JTextField) einfüge, wird sofort das ganze Fenste zu dem Textfeld?!

Wie kann ich die größe des Textfeldes bestimmen weil irgendwie klappt das mit setSize nicht?

gruß wolf360
 

Landei

Top Contributor
Ein "Fenster" (sprich JFrame) hat standardmäßig einen LayoutManager namens BorderLayout gesetzt. Der hat 5 Zonen: Norden, Süden, Osten, Westen, Mitte. Ein add() ohne weitere Angabe setzt die Komponente in die Mitte (Center). BorderLayout macht immer die Mitte so groß wie möglich -> riesen Textfeld.
Lösung 1: eine andere Zone angeben, z.B. Norden:
Code:
frame.getContentPane().add(textField, java.awt.BorderLayout.NORTH);
Lösung 2: einen anderen LayoutManager setzen, z.B.
Code:
frame.getContentPane().setLayout(new java.awt.FlowLayout());
frame.getContentPane().add(textField);
Lösung 3: Sun's Swing Tutorial lesen und etwas dabei lernen.
http://java.sun.com/docs/books/tutorial/uiswing/
 

wolf360

Mitglied
ich gehtz erstmal des Buch durch danach les ich mir des Swing tut durch.

okey zur nächsten Frage:

kann die bestimmten bereiche aufteiln??

Ich will 2 Buttons in den South bereich stelln, doch wenn ich das amch, überdeckt der eine den anderen?

gruß wolf360
 

Landei

Top Contributor
Ein Bereich -> *genau* eine Komponente.

Also greifen wir zum Matroschka-Prinzip: Einen Container wie JPanel (mit dem richtigen Layout, z.B. FlowLayout oder GridLayout), Box oder JToolBar in den South-Bereich legen, und dann die Buttons in den gewählten Container packen.
 

diggaa1984

Top Contributor
aeh wolf ich glaube du könntest auch neue Topics erstellen für neue Fragen :D ham ja langsam nix mehr mit der ursprünglichen zu tun ^^
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C kompletter baum Java Basics - Anfänger-Themen 2
M Handy Programm, kompletter Quelltext.Methodische Fehler? Java Basics - Anfänger-Themen 3
L Kompletter Neuling: Hilfe beim ersten Java Versuchen Java Basics - Anfänger-Themen 12
S Anfänger Regex Java Basics - Anfänger-Themen 4
B OOP was heißt objektorientiertes Programmieren (fragt ein absoluter Anfänger) Java Basics - Anfänger-Themen 17
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
M Java Programmierung Aufgabe Anfänger Java Basics - Anfänger-Themen 1
JordenJost Java ist auch eine Insel für Anfänger Java Basics - Anfänger-Themen 2
R Anfänger: Ausgabe kommt minus raus? Java Basics - Anfänger-Themen 6
D Zahlentabelle Anfänger braucht Hilfe Java Basics - Anfänger-Themen 1
N Fehler im Code (Aufgabe für Anfänger) Java Basics - Anfänger-Themen 11
T Übungsbuch für Anfänger Java Basics - Anfänger-Themen 3
H Threads Anfänger Java Basics - Anfänger-Themen 17
C Erste Schritte Anfänger Verständnisfrage zum Compiler Java Basics - Anfänger-Themen 31
J Anfänger, Fehler; "Der Hund liegt begraben" Java Basics - Anfänger-Themen 3
K Buchstabenzähler Java (Anfänger) Java Basics - Anfänger-Themen 35
E Kleines Java-Projekt für Anfänger Java Basics - Anfänger-Themen 10
U anfänger braucht hilfe . wir konnten die aufgaben nicht beantworten Java Basics - Anfänger-Themen 5
ehmo würfelspiel programmieren anfänger Java Basics - Anfänger-Themen 1
J Anfänger TicTacToe, Problem bei Gewinnoption, sowohl Unentschieden Java Basics - Anfänger-Themen 8
L Anfänger braucht Hilfe - Stecke beim Lernen fest Java Basics - Anfänger-Themen 10
A Scanner Befehl Java Anfänger Java Basics - Anfänger-Themen 8
_Zabuza_ Erste Schritte Wie am effektivsten Java lernen als Anfänger? Java Basics - Anfänger-Themen 12
T Roulette für Anfänger Java Basics - Anfänger-Themen 7
T Java Anfänger mit konkreten Fragen Java Basics - Anfänger-Themen 2
K Java Anfänger Java Basics - Anfänger-Themen 5
F Hilfe für einen Anfänger! Java Basics - Anfänger-Themen 4
S Ein Java Anfänger braucht Hilfe Java Basics - Anfänger-Themen 5
P Übungsaufgaben für Anfänger? Java Basics - Anfänger-Themen 2
Z Unklarheit bei Übungsaufgabe [Anfänger] Java Basics - Anfänger-Themen 22
J Lesen und schreiben in eine Datei(Anfänger- Dateizugriffe) Java Basics - Anfänger-Themen 3
O Anfänger, Verständnisfrage Java Basics - Anfänger-Themen 3
CT9288 Mini Anfänger-Problem mit loops, statements und ; Java Basics - Anfänger-Themen 4
F Hilfe, bin Anfänger! Java Basics - Anfänger-Themen 4
R Erste Schritte Materialien für Java-Anfänger Java Basics - Anfänger-Themen 7
Koookie Kleines Frage - Antwort Programm (Anfänger) Java Basics - Anfänger-Themen 5
F Studium aufgabe ...Anfänger sucht hilfe :D Java Basics - Anfänger-Themen 24
F Anfänger braucht Hilfe :) Java Basics - Anfänger-Themen 3
F Abrechnungsprogramm erstellen Student (Anfänger) Java Basics - Anfänger-Themen 2
D Anfänger braucht Hilfe Java Basics - Anfänger-Themen 2
J Musikplayer zu schwer für Anfänger? Java Basics - Anfänger-Themen 3
F Wieso wird dieser Befehl nicht ausgeführt? (Anfänger) Java Basics - Anfänger-Themen 2
V Erste Schritte Anfänger: Ausführen eines Java-Programms Java Basics - Anfänger-Themen 5
Textsurfer Methoden Anfänger * Java Basics - Anfänger-Themen 5
G Ein paar Anfänger Fragen zu StdDraw Java Basics - Anfänger-Themen 4
J Anfänger: ActionListener und ProcessBuilder machen Probleme Java Basics - Anfänger-Themen 6
C verwirrter Anfänger Java Basics - Anfänger-Themen 6
L Verzinsungsprogramm (Java-Anfänger) Java Basics - Anfänger-Themen 3
T Datentypen enum static Chaos (blutiger anfänger) Java Basics - Anfänger-Themen 5
I if/else Statements Java Anfänger Java Basics - Anfänger-Themen 14
D Anfänger-Fragen(Parameter einer Methode) Java Basics - Anfänger-Themen 7
H Schleifen (anfänger) Java Basics - Anfänger-Themen 13
H Methoden Bluej Anfänger Java Basics - Anfänger-Themen 13
M Erste Schritte Einfache Aufzugssteuerung programmieren - Anfänger Java Basics - Anfänger-Themen 2
D Anfänger-Problem mit dem HalloWelt-Programm Java Basics - Anfänger-Themen 5
S Compiler-Fehler Anfänger sucht Hilfe. Fehler beim Compilieren Java Basics - Anfänger-Themen 6
V Erste Schritte Java-Anfänger braucht Hilfe bei Arrays Java Basics - Anfänger-Themen 19
V Array mit Zufallszahlen - Anfänger - Hilfe Java Basics - Anfänger-Themen 12
J Anfänger hat Problem mit seinen Beet Java Basics - Anfänger-Themen 12
D Compiler-Fehler Anfänger Fehlermeldung Java Basics - Anfänger-Themen 3
das_leon if als Auswahl (Anfänger) Java Basics - Anfänger-Themen 1
N Anfänger Problem Java Basics - Anfänger-Themen 4
GoodGuy [Anfänger] Kann mal wer drüber gucken? Java Basics - Anfänger-Themen 3
R Erste Schritte Anfänger Probleme bei AnimationDrawable Java Basics - Anfänger-Themen 0
J Kleiner Taschenrechner! Anfänger braucht Hilfe :( Java Basics - Anfänger-Themen 2
C Taxiwarteschlange - Anfänger Java Basics - Anfänger-Themen 2
J Fehlermeldung : cannot invoke char(at) int on the primitive type int --- Anfänger Java Basics - Anfänger-Themen 5
I Java, Application, Eclipse (Anfänger) Java Basics - Anfänger-Themen 1
M Java Anfänger - Video Tutorial Reihe (DEUTSCH) Java Basics - Anfänger-Themen 11
C Anfänger: Array + Klasse Java Basics - Anfänger-Themen 5
S OOP Uhrenanzeige programmieren, Achtung Anfänger! Java Basics - Anfänger-Themen 9
B Compiler-Fehler Ein Java-Eclipse-Anfänger geht auf Reisen... Java Basics - Anfänger-Themen 10
A 2 kurze Anfänger fragen Java Basics - Anfänger-Themen 6
I totaler Anfänger braucht Hilfe Java Basics - Anfänger-Themen 8
I Erste Schritte Bücher für Jungedliche[Anfänger] Java Basics - Anfänger-Themen 20
T Hallo anfänger braucht Hilfe :D Java Basics - Anfänger-Themen 7
C Anfänger Anfänger Fragen Java Basics - Anfänger-Themen 8
A Anfänger Taschenrechner Frage Java Basics - Anfänger-Themen 14
D error: Class names, >>>HILFE, anfänger<<< Java Basics - Anfänger-Themen 4
J Hilfe für Anfänger Java Basics - Anfänger-Themen 8
E OOP Methode an andere Methode übergeben / OOP Anfänger Java Basics - Anfänger-Themen 4
Farbenfroh Exceptions Anfänger - Finde Fehler nicht Java Basics - Anfänger-Themen 7
H MergeSort (für Anfänger ) Java Basics - Anfänger-Themen 9
X Projekt Java Anfänger Java Basics - Anfänger-Themen 28
C Fehlersuche Adressbuch *Anfänger* Java Basics - Anfänger-Themen 5
C Anfänger braucht Hilfe bei Schularbeit Java Basics - Anfänger-Themen 3
J Erste Schritte Hilfe bei absolutem Anfänger-Projekt Java Basics - Anfänger-Themen 4
F Anfänger braucht Hilfe Java Basics - Anfänger-Themen 24
A Erste Schritte Übungen für Anfänger Java Basics - Anfänger-Themen 31
M Sieb des Eratosthenes für Anfänger Java Basics - Anfänger-Themen 10
M Tipps für einen Java-Anfänger Java Basics - Anfänger-Themen 5
S Anfänger Aufgaben Java Basics - Anfänger-Themen 6
G Anfänger-Errors und Fragen Java Basics - Anfänger-Themen 22
S Java für Anfänger: Probleme mit read() Java Basics - Anfänger-Themen 20
P [Anfänger] DiceGame Aufagbe Java Basics - Anfänger-Themen 23
C Input/Output Anfänger Array-Verständnis Frage Java Basics - Anfänger-Themen 7
W Erste Schritte OOP-Lektüre für Anfänger/Umsteiger von Clipper auf Java Java Basics - Anfänger-Themen 6
J Welches Java-Videotutorial für Anfänger empfehlenswert? Java Basics - Anfänger-Themen 7
F Java-Anfänger, brauche Hilfe Java Basics - Anfänger-Themen 3
F Java-Anfänger, brauche Hilfe Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben