Static void main <-> componentListener

S

Spacelabs

Gast
Moinsen...

Ich habe mit einigen Tutotials angefangen und komme nun nicht weiter.

Java:
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;

import javax.swing.JFrame;

public class Test implements ComponentListener{

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		JFrame f = new JFrame("Test");
		f.setSize(600,200);
		f.setTitle("Man nennt es \"Das Fenster\"");
		f.setVisible(true);
		//f.addComponentListener(this);
		System.out.println("test");
		
	}
	
	public void componentHidden(ComponentEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	public void componentMoved(ComponentEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	public void componentResized(ComponentEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	public void componentShown(ComponentEvent arg0) {
		// TODO Auto-generated method stub
		
	}

}

1. Ich bekomme eine Fehlermeldung das ich den Listener nicht im static void nutzen kann. Warum?

2. Mein Ziel ist es eine Art "Einrast" Funktion des Fensters zu erreichen.

Dazu will ich die aktuelle Größe des Desktops abgreifen mit Toolkit.getDefaultToolkit().getScreenSize(), das klappt.
ABER ich kapiere nicht ganz wie ich den componentMoved() nutze um nun das Fenster bei Annäherung an den Rand des Desktops mit hilfe von setPosition zu verschieben.

PS: Bitte in einfachen Sätzen ^^ und denkt daran Ihr habt auch mal angefangen :)
 

Der Müde Joe

Top Contributor
static: es gehört zu der Klasse (oder alle besitzen es)
non-static: es gehört zu der Instanz (dem was mit new erstellt worden ist).

Nun:
In der statischen Methode gibts kein this. Die statische Methode gehört allen, und darum ist sie nicht an eine Instanz gebunden (this).
In einer nicht-statische Methode würde es ein this geben. Dies wäre die Instanz, welche die Methode aufgerufen hat.

Was kann man jetzt machen:
Ein neues Objekt Test erstellen und dieses als Listener hinzufügen.
 
S

spacelabs

Gast
Gut hab ich kapiert.

Wäre es dann nicht sinnvoll in statischen Methoden die keinem Objekt zugeordnet sind nur die anderen Methoden aufzurufen? Sprich alles mit nicht statischen Methoden zu machen und die static Main void relativ klein zu lassen?

sprich so...

Java:
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;

import javax.swing.JFrame;

public class Test implements ComponentListener{


	

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Test a = new Test( "Rasten" );
		a.rasten();
	}
	
	public Test(String string) {
		// TODO Auto-generated constructor stub
	}
	public void rasten(){
		JFrame f = new JFrame("Test");
		f.setSize(600,200);
		f.setTitle("Man nennt es \"Das Fenster\"");
		f.setVisible(true);
		f.addComponentListener(this);
		System.out.println("test");
		
	}

	public void componentHidden(ComponentEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	public void componentMoved(ComponentEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	public void componentResized(ComponentEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	public void componentShown(ComponentEvent arg0) {
		// TODO Auto-generated method stub
		
	}

}
 

Ebenius

Top Contributor
Hier wäre es sinnvoll, darauf hinzuweisen, dass GUIs auf dem EDT erzeugt werden müssen. Auch wenn es in der Regel mit einer Sun-JRE auch funktioniert, wenn man die GUI im Main-Thread aufbaut...

Das sieht oft so aus:
Java:
...
public static void main(String[] args) {
  SwingUtilities.invokeLater(new Runnable() {
    @Override
    public void run() {
      createAndShowGui();
    }
  });
}

static void createAndShowGui() {
  Test a = new Test( "Rasten" );
  a.rasten();
}

...
Ebenius
 
S

Spacelabs

Gast
Sorry ich raff es nicht :D

Java:
	public void fenster(){
		JFrame f = new JFrame("Test");
		f.setSize(600,200);
		f.setTitle("Man nennt es \"Das Fenster\"");
		f.setVisible(true);
		f.addComponentListener(this);
		int momposx = f.getX();
		int momposy = f.getY();
		
		if (f.getX()<= 20){
			f.setLocation(0, momposy);
		}
		
		if (f.getY()<= 20){
			f.setLocation(momposx, 0);
		}
	
		System.out.println(momposx);
		System.out.println(momposy);		
	}

Ich kann das Fenster beim starten der App zwar genau positionieren, aber wie binde ich nun den Listener ein um eine Einrastfunktion zu bekommen??
 

ARadauer

Top Contributor
f.addComponentListener(this);
mach dir eine eigen Klasse für den Listern... is schöner

Dieser Listener muss natürlich auch dein Frame kennen, sonst kann er es nicht verändern...
 

Spacelabs

Neues Mitglied
??? jetzt muss ich den Listener auch noch den Frame nennen?? Ich hab doch den Listener schon der Methode fenster zugeordnet...

Wie sage ich das dem Listener denn?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
NaZuRe Geld(Wert) von der public static void main in die public static void Blackjack Java Basics - Anfänger-Themen 2
J Frage zu: public static void main (String[]args) Java Basics - Anfänger-Themen 1
B ja ja schon wieder einer mit einer public static void main(string[] args) Frage... Java Basics - Anfänger-Themen 8
P Compiler-Fehler public static void main, Grundloses Problem Java Basics - Anfänger-Themen 4
E Methoden public static void main(String[] args) Java Basics - Anfänger-Themen 9
C public static void main(String[] args) Java Basics - Anfänger-Themen 6
D Frage zu public static void main. Java Basics - Anfänger-Themen 4
G Vor oder hinter public static void main. ? Java Basics - Anfänger-Themen 8
G Was ist public static void main(String[] args)? Java Basics - Anfänger-Themen 12
M public static void main(String... args)<- Was bedeutet das? Java Basics - Anfänger-Themen 5
A die public static void main ? Java Basics - Anfänger-Themen 3
N public static void main(String args[]) Java Basics - Anfänger-Themen 6
P Was genau bedeutet "public static void main(String[] ar Java Basics - Anfänger-Themen 10
J public static void main? Java Basics - Anfänger-Themen 5
G public static void main(final String[] args) Java Basics - Anfänger-Themen 4
X Was genau heißt "public static void main(String[] args) Java Basics - Anfänger-Themen 4
B public static void main (String[] args) ??? Java Basics - Anfänger-Themen 2
G getParameter in public static void main Java Basics - Anfänger-Themen 3
viktor1 Methoden Methode schreiben static void readText (String filename) {...} zu WordHistogramSample.java Java Basics - Anfänger-Themen 13
Vamecruft Compiler-Fehler public static void zu static String ändern Java Basics - Anfänger-Themen 2
C Methoden Unterschied zwichen public int, public static int und public static void Java Basics - Anfänger-Themen 2
L Was genau macht "public static void" ? Java Basics - Anfänger-Themen 12
R public static void Rückgabe Java Basics - Anfänger-Themen 5
S Static void Methode Java Basics - Anfänger-Themen 12
G Warum eigentlich static void? Java Basics - Anfänger-Themen 3
B Problem mit einer static void Methode Java Basics - Anfänger-Themen 8
R void? static? beide? garnichtst von beiden? Java Basics - Anfänger-Themen 11
N public static void Java Basics - Anfänger-Themen 18
O Welcher Object-Lock-Pool bei static Variablen? Java Basics - Anfänger-Themen 3
A Instance methods should not write to "static" fields Java Basics - Anfänger-Themen 4
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
M static ArrayList in non-static Java Basics - Anfänger-Themen 12
B Static vs non static und Probleme daraus Java Basics - Anfänger-Themen 13
S Methoden 2 non-static Methoden, trotzdem Fehler "non static method can not be referenced from a static context" Java Basics - Anfänger-Themen 9
R UML-Bild (Erkennung ob static o. nicht) Java Basics - Anfänger-Themen 18
R Schulaufgabe, Bruache Hilfe mit non-static Methoden Java Basics - Anfänger-Themen 2
B Static Attribute in einer Klasse, wie geht das? :O Java Basics - Anfänger-Themen 19
H Static Java Basics - Anfänger-Themen 5
K Ausgaben auf der Konsole (static Varible) Java Basics - Anfänger-Themen 9
S public static boolean Java Basics - Anfänger-Themen 4
L non-static Fehler Java Basics - Anfänger-Themen 16
S Klassenmethode ohne static Java Basics - Anfänger-Themen 2
M (Sehr großes Problem) Listen als static in anderen Klassen verwendet Java Basics - Anfänger-Themen 12
J Fehlermeldung unklar. non-static variable player0 cannot be referenced from a static context Java Basics - Anfänger-Themen 4
D Methoden Scannervariablen in static Methoden Java Basics - Anfänger-Themen 5
P non-static variable cannot be referenced from a static context Java Basics - Anfänger-Themen 6
V the static method should be accessed is a static way Java Basics - Anfänger-Themen 6
NormanPatrickBenner static non-static Java Basics - Anfänger-Themen 82
N Erste Schritte "non-static method" oder "XYZ can not be resolved" Java Basics - Anfänger-Themen 21
B Email versenden, muss Methode static sein? Java Basics - Anfänger-Themen 7
R static in der Methode Java Basics - Anfänger-Themen 2
E Problem mit static Methode Java Basics - Anfänger-Themen 4
H Vererbung Static Scanner Objekt verwenden - von StdIn in einer importierten Klasse lesen Java Basics - Anfänger-Themen 10
M Cannot make a static reference to the non-static method Java Basics - Anfänger-Themen 10
I Abstrakte Klasse - static Attribute deklarieren Java Basics - Anfänger-Themen 14
T Datentypen enum static Chaos (blutiger anfänger) Java Basics - Anfänger-Themen 5
D Das leidige Thema static.... Java Basics - Anfänger-Themen 15
Aprendiendo Interpreter-Fehler "non-static variable this cannot be referenced from a static context" Java Basics - Anfänger-Themen 2
T Problem mit static Java Basics - Anfänger-Themen 6
T static String Variable wird nur beim ersten aufruf durch eine Funktion geändert. Java Basics - Anfänger-Themen 16
S Vererbung Zugriff auf Methode funktioniert nicht (static/non-static) Java Basics - Anfänger-Themen 3
snipesss Was kann 'static'? Java Basics - Anfänger-Themen 4
H Variablen error: non-static variable cannot be referenced from a static context Java Basics - Anfänger-Themen 4
M public static int in ActionListener Java Basics - Anfänger-Themen 6
J static verschachtelte Klassen und innere Klassen Java Basics - Anfänger-Themen 1
H Nicht Static Funktion ohne Objekt aufrufen? Java Basics - Anfänger-Themen 6
E Objekte und static Java Basics - Anfänger-Themen 2
K Methoden Methoden in Methoden -> static oder nicht? Java Basics - Anfänger-Themen 7
D Erklärung static boolean Java Basics - Anfänger-Themen 6
U Erste Schritte cannot be referenced from a static context Java Basics - Anfänger-Themen 1
J Java: static bei Vererbung Java Basics - Anfänger-Themen 5
O Zu viel static im Projekt Java Basics - Anfänger-Themen 9
F Static final Klasse Java Basics - Anfänger-Themen 0
N static und Objekt kombiniert?!? Java Basics - Anfänger-Themen 3
O Wann nutzt man static? Java Basics - Anfänger-Themen 19
B Klassen Eigene "non static" Klasse in Main verwenden! Java Basics - Anfänger-Themen 12
D neue public static class variablen in array speichern? Java Basics - Anfänger-Themen 6
A Static variablen --- Anwendungsbereich Java Basics - Anfänger-Themen 11
B Erste Schritte Wie komme ich aus Static raus?!! Java Basics - Anfänger-Themen 4
V Static Methods Java Basics - Anfänger-Themen 5
W Compiler-Fehler "non-static method cannot be referenced"-Problem Java Basics - Anfänger-Themen 6
S OOP Klasse mit static-Eigenschaften - HashMap füllen Java Basics - Anfänger-Themen 6
3 OOP static class in einer Klasse Java Basics - Anfänger-Themen 6
B static individuell "vererben"? Java Basics - Anfänger-Themen 8
B Erkennen, wann static oder nicht? Java Basics - Anfänger-Themen 7
T Static Fehler Java Basics - Anfänger-Themen 1
A Cannot make a static reference to the non-static field Java Basics - Anfänger-Themen 6
W Variablen Automatisch static? Java Basics - Anfänger-Themen 3
O Warum muss ich static? Java Basics - Anfänger-Themen 6
O Static Java Basics - Anfänger-Themen 15
E non-static method und static context Java Basics - Anfänger-Themen 15
B non static interface Methode Java Basics - Anfänger-Themen 16
J KeyListener,MouseListener,MouseMotionListener und static Java Basics - Anfänger-Themen 7
Q Unterschied zwischen static und keinem Modifier Java Basics - Anfänger-Themen 15
O Main-Methode static modifier umgehen Java Basics - Anfänger-Themen 10
J Variablen non-static variable Java Basics - Anfänger-Themen 2
P Erste Schritte public oder static oder wie? Java Basics - Anfänger-Themen 7
J static - Methoden Java Basics - Anfänger-Themen 22
X Erste Schritte Methode ohne Static Java Basics - Anfänger-Themen 4
B Classpath static block - Verwirrung Java Basics - Anfänger-Themen 2

Ähnliche Java Themen


Oben