Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme.

Java

Diskussion: Java im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Hi! Der Code den ich erstellt habe, funktionniert genauso wie ich es wollte. Was mich aber an diesem Code ...

Antwort
Alt 16.06.07, 19:49   #1 (permalink)
sw33tlull4by
Guest
 
Likes:
Standard Java

Anzeige

Hi!
Der Code den ich erstellt habe, funktionniert genauso wie ich es wollte.
Was mich aber an diesem Code stoert ist das ich in der Klasse globale Variablen setzten muss damich ich mit der ActionListener-Methode mit den Dingern arbeiten kann.
Meine Frage ist also:
Kennt irgendjemand eine Moeglichkeit wie ich diie globalen Dinger ohne Probleme in die Methode holen kann?
Die Methode ist zwar keine Mainmethode aber man kann das ja einfach umschreiben.
mfg

sw33t


Code:
package apiversuch;

import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class anotherone implements EventListener
{

	static JTextField eingabe = new  JTextField(4);

	static JButton bla = new JButton();
	
	public static void schreiben()
	{

		

		
		JFrame abhaengig = new JFrame("Anotherone");
		JFrame.setDefaultLookAndFeelDecorated(true);

		abhaengig.setVisible(true);
		abhaengig.setPreferredSize(new Dimension(300,300));


		JPanel hola = new JPanel(new BorderLayout());

		bla.setText("change me");

		bla.addActionListener(new ActionListener()
					{
						public  void actionPerformed(ActionEvent d)
							{
								bla.setText((String)eingabe.getText());
								return;	
							}
					}
				     );
	
		hola.add(bla,BorderLayout.SOUTH);
		hola.add(eingabe,BorderLayout.NORTH);
			
	        hola.setBorder(BorderFactory.createEmptyBorder(5,10,15,20));		

		abhaengig.add(hola,BorderLayout.CENTER);
		
		abhaengig.pack();

		return;
	}

}
  Mit Zitat antworten
Alt 16.06.07, 20:10   #2 (permalink)
Senior Member
 
Registriert seit: 26.03.06
Serow Leistung: 8086
Likes: 16
Standard

du willst "bla" in actionPerformed haben ohne bla static zu machen? Warum sollte das nicht klappen?

Code:
import javax.swing.*;
import java.awt.event.*;

public class Test {

	private JTextField text;
	private JButton button;

	
	public void foo() {
		button.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent ev) {
				text.setText("test");
			}
		});
	}


	

}
Der Code kompiliert bei mir ...

Dein Code ist ja richtig gruselig ...
- alles static
- du erzeugst ohne erkennbaren Grund ein JFrame in einer statischen Methode, deren namen nichts mit dem zu tun hat, was da drin steht ...

Achja: wenn du das static von den Variablen weg nimmst muss deine Methode auch non-static werden ..
Serow ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 17.06.07, 15:25   #3 (permalink)
sw33tlull4by
Guest
 
Likes:
Standard

Nein du hast mich nicht ganz verstanden.
Das was du gemacht hast ist das gleiche was ich gemacht habe nur in gruen.
static heisst das es in dem gesamten Prog nur eine Instanz dieser Klasse geben darf,
Das ist auch genau das was ich wollte, denn ich habe hier mit der GUI nur rumprobiert, damit ich es spaeter auf ein anderes Programm uebertragen kann.
Ich wollte es static deklarieren, da ich keinen Bock und keine Notwenigkeit sah dafuer extra eine Instanz zu erstellen, abgesehen davon bin ich schreiibfaul,ein Wort gegen eine Zeile, da nehme ich natuerlich das Wort.^^
Mit dem Namen der einzelnen Sachen und deren Funktionen hast du recht, wuerde mir auch nicht einfallen es in einem groesseren Projekt zu versuchen.
Ich bin was java angeht kein Crack und ich vertrete immer noch die Ansicht:

"I never thought that a Coup of Coffee could give a BJ, but now I know JAVA sucks!";

Javaskript sei mal dahin gestellt, aber Java???Nein danke, nicht fuer mich.
Obwohl es GROESTENTEILS Portabel ist, sie Handys und JavaApplets.

Was ich wissen wollte ist:
Kann ich die Buttons und Textfelder irgendwie in die Methode reinholen?
(Sorry wenn das angangs nicht so rueberkam)
Denn bei mir kommt immer die Kompielermeldung:

....Tries to access from inner Class... needs to be declared Final...

Aber Final ist ja nicht in meinem Sinne da ich die Beschrieftung ja noch aendern will.

Und wiso sagst du das ich einen JFrame ohne ersichtlichen Grund erzeuge?
Ich Zeige ja den Frame an und damit ich die Biuttons auch anzeigen kann muessen die halt da mit rein, das JPanel koennte ich , meines wissens nach weglassen und alles direkt ins Fenster packen.
mfg

sw33t
  Mit Zitat antworten
Alt 17.06.07, 15:35   #4 (permalink)
Senior Member
 
Registriert seit: 26.03.06
Serow Leistung: 8086
Likes: 16
Standard

Static hat nichts damit zu tun, dass du eine Instanz der Klasse erzeugt werden darf. Wenn du das erreichn willst musst du dir das Singleton-Pattern anschauen.

Bei dem final bin ich mir gerade nicht ganz sicher, aber ich denke du kannst trotz einer final-declaration von JTextField die setText(String)-Methode aufrufen.
Serow ist offline   Mit Zitat antworten
Alt 17.06.07, 16:20   #5 (permalink)
fetzer
Guest
 
Likes:
Standard

Code:
import javax.swing.*;
import java.awt.event.*;

public class Test {

	
	public void foo() {
		final JTextField text = new JTextField();
		JButton button = new JButton();
		button.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent ev) {
				text.setText("test");
			}
		});
	}


	

}
compiliert ohne Probleme bei mir...

@sw33tlull4by
Ich hab dich auch nicht ganz verstanden. Was ist dein Problem? Du willst das JTextField und den JButton auch in der actionPerformed-Methode nutzen, oder seh ich da was falsch? Was ist so falsch daran, es mit globalen Variablen ( den Sinn von Static versteh ich hier auch nicht.... ) durchzuführen?
Du kannst es natürlich auch anders machen:

Code:
public class Test {

	
	public void foo() {
		JTextField text = new JTextField();
		JButton button = new JButton();
		Listener listen = new Listener(button,text);
		button.addActionListener(listen);
	}

	public class Listener implements ActionListener {
		JButton b;
		JTextField t;
		public Listener(JButton bu, JTextField txt) {
			b=bu;
			t=txt;
		}
		public void actionPerformed(ActionEvent e) {
			t.setText("Text");
		}
	}
	

}
oder eben es über implements definierst und über globale Variablen nutzt:

Code:
import javax.swing.*;
import java.awt.event.*;

public class Test implements ActionListener {

	private JTextField text;

	public void foo() {
		text = new JTextField();
		JButton button = new JButton();
		button.addActionListener(this);
	}

	public void actionPerformed(ActionEvent e) {
		text.setText("test");
	}

}
  Mit Zitat antworten
Alt 18.06.07, 21:58   #6 (permalink)
sw33tlull4by
Guest
 
Likes:
Standard

thx...
die Codes sind schon eher das was ich suche.
Wiso ich das nicht mit den Globalen Variabeln machen will?
Encapsukation und ich versuche alle Sachen die ich benutze so dicht wie moeglich beieinander zu behalten also nach Moeglichkeit ein einer Methode(lesbarkeit und Wartung), es sei denn es wuerde zu redundantem Code fuehren.
Ist halt ein Tick von mir.
Vielen Dank fuer eure Hilfestellungen.
mfg

Sw33t
  Mit Zitat antworten
Alt 20.06.07, 20:51   #7 (permalink)
 
Registriert seit: 08.06.07
Lutherion Leistung: Facit NTK
Likes: 0
Standard

Dein Problem ist der Zugriff aus einer anonymen Klasse(ActionListener). Aktivierst du an der Stelle eine methode ,die das selbe macht , dürfte es keine Probleme geben.
mfG
Lutherion ist offline   Mit Zitat antworten
Alt 22.06.07, 20:48   #8 (permalink)
 
Registriert seit: 07.06.07
SteveO1 Leistung: Facit NTK
Likes: 0
Standard

Ich habe ebenfalls eine Frage zu Java.

Meine Frage ist , ob es ein Programm gibt ( so etwas ähnliches wie Paint sollte es sein ) , womit man etwas malen kann um damit dann die koordinaten von bestimmten punkten in der zeichnung abzulesen.
So kann man dann im Programm die koordinaten bei zb drawline(); eingeben und erählt eine saubere Zeichnung.
Mit schätzen klappt das bei etwas komplizierteren sachen nähmlich nicht mehr so gut icon_wink.gif


Das könnte man auch selbst machen indem man ein Koordinaten kreuz in Java bei Paint öffnet und dann drüber malt ..

Aber wo gibt es solch ein KoordinatenKreuz / oder am besten ein Programm dafür ??




MfG
Steve
SteveO1 ist offline   Mit Zitat antworten
Alt 22.06.07, 22:38   #9 (permalink)
Senior Member
 
Registriert seit: 26.03.06
Serow Leistung: 8086
Likes: 16
Standard

und was genau hat das mit java tun?? hört sich für micht nach vektorgraphik-programmen an, was du da beschreibst.
Serow ist offline   Mit Zitat antworten
Alt 23.06.07, 11:57   #10 (permalink)
 
Registriert seit: 07.06.07
SteveO1 Leistung: Facit NTK
Likes: 0
Standard

Nene , es soll kein programm sein bei dem der benutzer etwas zeichnenö kann.

Ich meinte damit ich selbst etwas zeichnen kann ( so wie bei paint ) aber , dass ich auf ein kooridnaten kreuz zeichnen kann , damit ich dran sehen kann wie die kooridaten sind.


Damit ich die dann im Programm ( das ich selbst schreibe ) benutzen kann.

WEil normaler weise schätze ich immer. Zb wenn ich eine linie schräg ober den bildchirm haben will ( vonn 0,0 nach 500,500 zb )



Ich wollte aber fragen ob es ein Programm gibt bei dem man in diesem beispiel einfach eine linie zeichnet .. und da steht dann über welche koordinaten ( über wie viel pixel ) die linie geht.

Weil das java-koordinaten kreuz hat ja 0 oben rechts in der ecke ..



----

Anders könnte man auch einfach das Java-Koordinaten kreuz bei paint einfügen und dann drübermalen
SteveO1 ist offline   Mit Zitat antworten
Alt 23.06.07, 12:51   #11 (permalink)
Senior Member
 
Registriert seit: 26.03.06
Serow Leistung: 8086
Likes: 16
Standard

Zitat:
Nene , es soll kein programm sein bei dem der benutzer etwas zeichnenö kann.

Ich meinte damit ich selbst etwas zeichnen kann ( so wie bei paint )
Du bist also kein Benutzer?? Hä? Und Paint ist kein Programm für Benutzer? Für wen denn dann? Also ich raffs nicht ...
Serow ist offline   Mit Zitat antworten
Alt 23.06.07, 15:06   #12 (permalink)
fetzer
Guest
 
Likes:
Standard

Zitat:
Original von SteveO1
Nene , es soll kein programm sein bei dem der benutzer etwas zeichnenö kann.

Ich meinte damit ich selbst etwas zeichnen kann ( so wie bei paint ) aber , dass ich auf ein kooridnaten kreuz zeichnen kann , damit ich dran sehen kann wie die kooridaten sind.
Du widersprichst dir gerade so extrem...

Also wenn ich das mal entziffern dürfte ( ich versuchs einfach mal ): Du willst ein Koordinatenkeuz haben, in das man einen Linie zeichnen kann und dann die Koordinaten von versch. Punkten angezeigt werden.

Wenn das so ist: Der MouseListener bzw der MouseMotionListener sollten dir dabei weiter helfen. Mit dem MouseEvent, das bei beiden mit einbezogen werden muss, gibt dir die Koordinaten an. D.h. mit mousePress(MouseEvent me) setzt die Anfangskoordinaten und speicherst diese in Variablen. Mit mouseRelease(MouseEvent me) setzt du die Entkoordinaten und speicherst diese wieder in Variablen. Ob du nun eine Linie zeichnest oder dir die Punkte irgendwo ausgeben lässt ist egal.
  Mit Zitat antworten
Alt 23.06.07, 16:38   #13 (permalink)
Senior Member
 
Registriert seit: 26.03.06
Serow Leistung: 8086
Likes: 16
Standard

oje ... jahrgang 92 ... da kann man ihm verzeihen dass er erst lernen muss wie man sich ausdrückt
Serow ist offline   Mit Zitat antworten
Alt 24.06.07, 14:31   #14 (permalink)
 
Registriert seit: 07.06.07
SteveO1 Leistung: Facit NTK
Likes: 0
Standard

MAN !!

GENAU SO EBEN NICHT


Ich meine , dass ich dass Programm nicht selber schreiben möchte , damit der Benutzer da etwas reinmalt und ich dann die koordinaten weiß.

Ich suche ein fertiges Programm ( falls es so etwas schon gibt ) wo ich dann reinmalen kann. Dieses Programm sollte einen hintergrund ( z.b. ) haben bei dem man das Java koordinaten kreuz sieht , sodass ich die koordinaten von meiner eigenen zeichnung in diesem ( schon fertigen ) programm ablesen kann.




Warum ich so ein Programm brauche/suche ????
Wenn man (ich) in java zb in der paint() methode etwas zeichnen will.
sagen wir mal eine linie die schräg über den bildchschirm geht..
paint(Graphics g)
{ g.drawLine(0,0,500,500 };

Im normalfall würde ich diese Koordinaten schätzen. ( Abschätzen von welcher koordinate zu welcher koordinate diese linie gehen müsste damit ich eine linie habe die schräg über den bildschirm geht )

Aber was wenn ich jetzt zb einen Stern(oder die umrisse eines Tieres , was auch immer ) zeichnen will ???
Das ist verdammt schwer diese linien alle abzuschätzen , also wäre es gut wenn ich ein programm hätte , indem ich meine zeichnugn einfach so reinmalen kann ( eben so wie bei paint ) und danach die koordinaten ablesen,

Dann kann ich diese Koordinaten in meinem Programm ( das ich selbst schreibe , und dann in diesem Fall einen stern enthält ) benutzen..






Viel Text , aber ich hoffe ich hab es jetzt ausführlich genug erklärt!


DANKE
Steve
SteveO1 ist offline   Mit Zitat antworten
Alt 24.06.07, 16:09   #15 (permalink)
 
Registriert seit: 24.01.06
Janus Leistung: Facit NTK
Janus eine Nachricht über ICQ schicken
Likes: 0
Standard

das würde ich aber nicht mit Graphics.drawLine() machen da wirste ja blöd mit ^^

und nen stern würde ich mit ein bissel mathematischer Trickserei programmieren... sofern er regelmäßig ist Und naja, die Umrisse von deinem Tier, das lohnt sich nicht wirklich, die mit Linien zeichnen zu lassen, wie gesagt. Da bind das Bild lieber direkt in deine Zeichenfläche ein...
Janus ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Software Home » Code Kitchen » Java
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Java Bu(e)ch(er) Prototipping Kaufberatung 3 17.11.07 20:10
Java??? the.mole Code Kitchen 3 06.11.05 20:07
Java DolphVS Code Kitchen 2 29.09.05 19:28
JAVA! gibts soziale java fachleute? yakuza Code Kitchen 4 03.05.04 00:53
Java und Java script paya Code Kitchen 2 29.05.03 09:37


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61