WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   java frage (http://www.wcm.at/forum/showthread.php?t=114513)

AlexanderFX 05.11.2003 13:58

java frage
 
hiho

ich muss ein java programm schreiben, dass beim usführen im dos fenster eine box aufmacht indem ein textfeld und ein button vorhanden sind. wenn ich den button drücke soll in dem textfeld ein text erscheinen. ich weiß nur das ich das mit swing machen soll

dadurch dass ich anfänger in sachen java bin wollt ich fragen ob mir vieleicht einer helfen kann
danke im vorraus

mfg alex

jopp 05.11.2003 16:21

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

class SimpleFrame extends JFrame implements ActionListener {
JTextField jtf;
JButton jb;

//Varibale mit dem Text
String text = "hi alex";

public SimpleFrame (String title) {

super(title);

//ein WindowListener um das Fenster wieder schließen zu können
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent event) {
System.exit(0);
}
});

setSize(160, 100);

//LayoutManager festlegen
this.getContentPane().setLayout(new FlowLayout());

Dimension d = new Dimension(100,20);
jtf = new JTextField("");
jtf.setPreferredSize(d);
getContentPane().add(jtf);

jb = new JButton("Text zeigen");
getContentPane().add(jb);
//ActionListener für Button hinzufügen
jb.addActionListener(this);

show();
}

public void actionPerformed (ActionEvent event) {
jtf.setText(text);
}

public static void main (String[] args) {
SimpleFrame w = new SimpleFrame("TEST");
}
}

damit sollte es funktionieren

AlexanderFX 05.11.2003 16:25

danke für die schnelle antwort

ich werde es ausprobieren wenn ich dazu komm und schreib dan ob es funktioniert

mfg alex

AlexanderFX 05.11.2003 19:26

hey danke hat super geklappt

thx für die hilfe

mfg alex

PS:
wenn einer zeit hat kann mir einer erklähren wie oder wo der text mittels button ins feld geschickt wird ?

jopp 05.11.2003 19:37

hi

ich werde dir kurz die funktion erklären.

dem Button jb wird ein ActionListener hinzugefügt. der macht nichts anderes als wenn der Button gedrückt wird ein ereignis auszuführen. und mit this wird quasi auf diese klasse verwiesen und nach der methode actionPerformed gesucht. die anweisungen in dieser methode werden dann durchgeführt.

mit der anweisung jtf.setText(text) kann der inhalt des textfeldes neu gesetzt werden. und zwar wird der vorhandene text (jtf = new JTextField("hier könnte ein text stehen der gleich beim aufruf des programms erscheint"); daher leer) durch den text der in der String variablen text steht ersetzt.

ich hoffe ich habe das einigermassen verständlich erklärt. sorry das ich das nicht gleich gemacht habe, war im zeitdruck.

sollte es noch fragen geben, gleich stellen.

mfg

jopp

AlexanderFX 06.11.2003 19:52

ahaaaa
dh:
das this. ... sagt er soll in dieser classe suchen/adden ...usw

Action listener sucht nach einer methode die etwas ausfürht ?
i versteh ned wie er die methode finden kann wen ich ihm nirgendst sag wie sie heißt

was ist denn enn ich 2 oder mehr buttons mach ... die würden ja alle auf die methode zugreifen oder ?

jopp 06.11.2003 20:27

das ist so im objekt action listener festegelegt, dass er nach dieser methode sucht. wenn du die methode weglässt, bekommst du einen fehler.

in der methode actionPerformed kannst du du folgendes verwenden:

dadurch das event übergeben wird, kannst du folgende abfrage machen

if ( event.getSource == jb1) {
anweisung
}
else if (event.getSource == jb2) {
anweisung
}

somit kannst du eine ganze reihe an buttons in dein frame einbringen und mittels einer methode für jeden eine aktion ausführen.

AlexanderFX 07.11.2003 12:29

eine frage hätt ich noch
und zwar zu dieser zeile:

SimpleFrame w = new SimpleFrame("TEST");

reicht es ned wenn ich einfach nur SimpleFrame("Test"); schreib
oder muss ich das mit dem "SimpleFrame w = new ..." machen

jak 09.11.2003 15:08

Du musst zuerst eine Instanz des Objektes erstellen, d.h. es wird sozusagen ein Exemplar von SimpleFrame mit dem Namen w angelegt. Das "new" ruft den Konstruktor auf.

Jak


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag