ActionListner wohin mit dem?
Benedikt
- java
Hallo
ich hab da ein Problem bei dem auch mehrere Versuche erfolglos blieben. Ziemlich am Ende des Quelltextes mach einen Einstellungsdialog und dort gibts zwei Buttons doch ich weiß nicht wie ich für die einen ActionListner mach. Hab probiert schon direkt hinter ihnen button.addActionListner(this); doch das will er nicht. Und dann hab ich es weiter oben Versucht wo die anderen Action gemacht werden. Ist ziemlich viel QuellText, ich versuch soviel unwichtiges für euch raus zulassen.
Benedikt
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class Preisrechner extends Frame {
// Anfang Variablen
double preismin; //zb 0.10
double preismax; // 0.40
double mwst; // 16 in Prozent
double gewinn; // 52 Gewinn ab 3 Stellen
double frachtsoll; // 0.0075
MenuBar mb = new MenuBar(); // Menubar
Menu datei = new Menu("Datei"); // Dateimenu
MenuItem loeschen = new MenuItem("Ausgabefeld leeren");
MenuItem beenden = new MenuItem("Beenden");
Menu einstel = new Menu("Einstellungen"); // Einstellungsmenu
MenuItem einstelaendern = new MenuItem("Einstellungen ändern");
Menu help = new Menu("Hilfe"); // Hilfemenu
MenuItem hilfe = new MenuItem("Hilfe");
MenuItem kontakt = new MenuItem("Kontakt");
MenuItem info = new MenuItem("Info");
Panel pa = new Panel(); // Hauptpanel
Panel pawest = new Panel(); // Eingabebereich
Label ekt = new Label("Einkaufspreis (Cent): "); // ek Text
TextField ekf = new TextField("0", 5); // ek Eingabefeld
Label frachtt = new Label ("Fracht (): "); // fracht Text
TextField frachtf = new TextField("", 5); // fracht Eingabefeld
Label stellent = new Label ("Abladestellen: "); // stellen Text
TextField stellenf = new TextField("0", 5); // stellen Eingabefeld
Label menget = new Label ("Menge (Liter): "); // menge Text
TextField mengef = new TextField("0", 5); // menge Eingabefeld
Label leer = new Label (" "); // Leeresfeld
Label leer1 = new Label (" "); // Leeresfeld
Label leer2 = new Label (" "); // Leeresfeld
Label leer3 = new Label (" "); // Leeresfeld
Label leer4 = new Label (" "); // Leeresfeld
Label leer5 = new Label (" "); // Leeresfeld
Label leer6 = new Label (" "); // Leeresfeld
Label leer7 = new Label (" "); // Leeresfeld
Label leer8 = new Label (" "); // Leeresfeld
Button berechne = new Button("Berechne"); // Button
TextArea ausgabe = new TextArea ("", 1, 1); // Ausgabefeld
Dialog dinfo = new Dialog(this, "Versions Information", true);// InfoDialog
Dialog dhilfe = new Dialog(this, "Hilfe", true); // Hilfe im Hilfemenu
Dialog dkontakt = new Dialog(this, "Kontakt", true); // Kontakt
Dialog deinstellungen = new Dialog(this, "Einstellungen", true);//Einstellungen
public Preisrechner()
{
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
}
// Ende Variablen
public Preisrechner (String Title) throws IOException {
// Frame-Initialisierung
super ("Preisrechner v1.3");
addWindowListener(new WindowAdapter() {
public void windowClosing (WindowEvent evt) {System.exit(0);}});
setSize(520, 400);
setLayout(new FlowLayout());
// Anfang Komponenten
try{ // Holt die Werte aus der Datei
BufferedReader in = new BufferedReader(new FileReader("einstellungen.txt"));
preismin = Double.parseDouble(in.readLine());
preismax = Double.parseDouble(in.readLine());
mwst = Double.parseDouble(in.readLine());
gewinn = Double.parseDouble(in.readLine());
frachtsoll = Double.parseDouble(in.readLine());
in.close();
frachtf.setText(""+frachtsoll+"");
}catch (Exception e){
ausgabe.setText("False "+ e);
}
setMenuBar(mb); // Menubar
mb.add (datei); // Dateimenu
datei.add (loeschen);
datei.add (beenden);
mb.add (einstel); // Einstellungsmenu
einstel.add (einstelaendern);
mb.add (help); // Hilfemenu
help.add (hilfe);
help.add (kontakt);
help.add (info);
add(pa); // Hauptpanel
setLocation(252, 160); // Startpostion
setResizable(false);
setBackground(Color.lightGray); // Farben
setForeground(Color.black); // Farben
pa.add (pawest); // Eingabebereich
pawest.setLayout(new GridLayout(9, 2)); // Layout
pawest.add (ekt); // ek Text
pawest.add (ekf); // ek Feld
pawest.add (leer1);
pawest.add (leer2);
pawest.add (frachtt); // fracht Text
pawest.add (frachtf); // fracht Feld
pawest.add (leer3);
pawest.add (leer4);
pawest.add (stellent); // stellen Text
pawest.add (stellenf); // stellen Feld
pawest.add (leer5);
pawest.add (leer6);
pawest.add (menget); // menge Text
pawest.add (mengef); // menge Feld
pawest.add (leer7);
pawest.add (leer8);
pawest.add (leer); // Leeresfeld
pawest.add (berechne); // Button
pa.add (ausgabe); // Ausgabefeld
ausgabe.setText("");
ausgabe.setColumns(30);
ausgabe.setRows(20);
berechne.addActionListener (new ActionListener () { // Aktion berechne
public void actionPerformed (ActionEvent evt) {
berechneActionPerformed (evt);}});
beenden.addActionListener (new ActionListener () { // Aktion beenden
public void actionPerformed (ActionEvent evt) {
beendenActionPerformed (evt);}});
info.addActionListener (new ActionListener () { // Aktion info
public void actionPerformed (ActionEvent evt) {
infoActionPerformed (evt);}});
loeschen.addActionListener (new ActionListener () { // Ausgabefeldleeren
public void actionPerformed (ActionEvent evt) {
loeschenActionPerformed (evt);}});
hilfe.addActionListener (new ActionListener () { // Hilfe im Hilfemenu
public void actionPerformed (ActionEvent evt) {
hilfeActionPerformed (evt);}});
kontakt.addActionListener (new ActionListener () { // Aktion Kontakt
public void actionPerformed (ActionEvent evt) {
kontaktActionPerformed (evt);}});
einstel.addActionListener (new ActionListener () { // Aktion Einstellungen
public void actionPerformed (ActionEvent evt) {
einstelActionPerformed (evt);}});
/* speichern.addActionListener (new ActionListener () { // Aktion Speichern
public void actionPerformed (ActionEvent evt) {
speichernActionPerformed (evt);}});
abbrechen.addActionListener (new ActionListener () { // Aktion Abbrechen
public void actionPerformed (ActionEvent evt) {
abbrechenActionPerformed (evt);}});
*/
// hier das sollen die ActionListner der Buttons sein die ich brauch für den Einstellungsdialog
// Ende Komponenten
}
// Anfang Ereignisprozeduren
void loeschenActionPerformed (ActionEvent evt){ // Aktion Ausgabefeld leeren
ausgabe.setText("");
}
void beendenActionPerformed (ActionEvent evt) { // Aktion für Beenden
if(evt.getSource() == beenden){
System.exit(0);
}
else{
System.exit(1);
}
}
void berechneActionPerformed (ActionEvent evt) { // Aktion für Button
}
void infoActionPerformed (ActionEvent evt) { // Aktion für Info
Panel painfo = new Panel();
Label infotext0 = new Label(" ");
Label infotext1 = new Label("Dies ist Version 1.3");
Label infotext2 = new Label(" ");
Label infotext3 = new Label("by Bene");
painfo.setSize(200, 100);
painfo.setLayout(new FlowLayout());
painfo.add(infotext0);
painfo.add(infotext1);
painfo.add(infotext2);
painfo.add(infotext3);
Point loc = getLocation();
dinfo.setLocation((loc.x+160), (loc.y+150));
dinfo.setSize(200, 100);
dinfo.setResizable(false);
dinfo.add(painfo);
dinfo.addWindowListener(
new WindowAdapter(){
public void windowClosing (WindowEvent evt){
dinfo.dispose();
}
}
);
dinfo.show();
}
void hilfeActionPerformed (ActionEvent evt) { // Hilfe im Hilfe Menu
Panel pahilfe = new Panel();
pahilfe.setSize(250, 80);
pahilfe.setLayout(new FlowLayout());
Label hilfetext = new Label("Bitte die Hilfe im Startmenu verwenden.");
pahilfe.add(hilfetext);
Point loc = getLocation();
dhilfe.setSize(250, 80);
dhilfe.setLocation((loc.x+135), (loc.y+160));
dhilfe.add(pahilfe);
dhilfe.setResizable(false);
dhilfe.addWindowListener(
new WindowAdapter(){
public void windowClosing (WindowEvent evt){
dhilfe.dispose();
}
}
);
dhilfe.show();
}
void kontaktActionPerformed (ActionEvent evt) { // Kontakt
}
void einstelActionPerformed (ActionEvent evt){ // Einstellungs Dialog
Button speichern = new Button(" Speichern ");
Button abbrechen = new Button(" Abbrechen ");
Panel main = new Panel();
main.setLayout(new FlowLayout());
Panel oben = new Panel();
Panel unten = new Panel();
Panel obenlinks = new Panel();
obenlinks.setLayout(new GridLayout(5, 1));
Panel obenrechts = new Panel();
obenrechts.setLayout(new GridLayout(5, 2));
oben.add(obenlinks);
Label text0 = new Label("Mehrwertssteuer:");
Label text1 = new Label("Fracht:");
Label text2 = new Label("Gewinn ab 3 Stellen:");
Label text3 = new Label("Preisfenster (min):");
Label text4 = new Label(" (max):");
obenlinks.add(text0);
obenlinks.add(text1);
obenlinks.add(text2);
obenlinks.add(text3);
obenlinks.add(text4);
oben.add(obenrechts);
TextField feld0 = new TextField(""+mwst+"",5);
TextField feld1 = new TextField(""+frachtsoll+"",5);
TextField feld2 = new TextField(""+gewinn+"",5);
TextField feld3 = new TextField(""+preismin+"",5);
TextField feld4 = new TextField(""+preismax+"",5);
Label text5 = new Label(" %");
Label text6 = new Label(" ");
Label text7 = new Label(" ");
Label text8 = new Label(" ");
Label text9 = new Label(" ");
obenrechts.add(feld0);
obenrechts.add(text5);
obenrechts.add(feld1);
obenrechts.add(text6);
obenrechts.add(feld2);
obenrechts.add(text7);
obenrechts.add(feld3);
obenrechts.add(text8);
obenrechts.add(feld4);
obenrechts.add(text9);
main.add(oben);
main.add(unten);
unten.add(speichern);
unten.add(abbrechen);
Point loc = getLocation();
deinstellungen.setLocation((loc.x+110), (loc.y+95));
deinstellungen.setSize(300, 210);
deinstellungen.setResizable(false);
deinstellungen.add(main);
deinstellungen.addWindowListener(
new WindowAdapter(){
public void windowClosing (WindowEvent evt){
deinstellungen.dispose();
}
}
);
deinstellungen.show();
}
// Ende Ereignisprozeduren
public static void main (String args[]) throws IOException {
new Preisrechner("Preisrechner v1.3").show();
}
}
Hallo,
um ehrlich zu sein, ist mir das bei weitem zu viel (auch absolut
irrelevanter) Code. Noch dazu ist er nicht eingerückt oder in sonst
einer Form formatiert. Falls du wirklich Hilfe haben willst, solltest
du den auf ein erträgliches Maß reduzieren..
Viel besser wäre allerdings, wenn du dir die Lösung selbst erarbeitest.
Die ist nämlich eigentlich ziemlich trivial (-> Schema 'F').
Guck dir am besten mal das Kapitel 28 von Guido Krüger's Javabuch an.
Das kannst du unter http://www.javabuch.de kostenlos runter-
laden. Dort ist das ganze absolut genial erklärt. In Kapitel 28.2
werden dir 4 mögliche Varianten zum Event-Handlings vorgestellt. Da
suchst du dir die passende raus. (Nach welchen Kriterien, wird dort
auch erklärt.)
Gruß
Slyh
Hallo das war so weil ich den noch wo anders erst rein kopiert hatte. Deswegen gibts keine Einrückungen mehr. Und so kompliziert ist es auch net find ich.
Benedikt
Hallo Benedikt,
Und so kompliziert ist es auch net find ich.
Slyh sagte auch nicht kompliziert sondern irrelevant :)
Gruß,
dimde