Var von Main Klasse von einer zweiten Klasse nutzen?

  • Themenstarter Themenstarter ABISZ
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
A

ABISZ

Gast
Naja und auch ich sitze vor einem Anfänger Problem.

Also ich habe ein Hauptprogramm mit einer GUI
Dort habe ich Textfelder in dem ich Daten eintragen kann.
Diese Daten werden dann per Knopfdruck in Var´s z.B. a und b gespeichert.
Das läuft alles top.
Wenn ich nun auf start klicke in meiner GUI klicke, dann rufe ich meine zweite Klasse (z.B. rechnen) auf.
Und ich möchte da in der Klasse jetzt die Variablen von meiner GUI nutzen . Also mich möchte die Variablen in meiner zweiten Klasse übergeben, damit ich so mit diesen Daten da rechnen, schreiben oder was auch immer mit machen kann.

Wie übergebe ich von meiner Main Klasse (meiner Haupt GUI) die dort gespeicherten Variablen ( int oder sting ) in meiner zweiten Klasse z.B. rechnen. Damit ich mit den Daten da arbeiten kann?


Danke
 
Wenn die Variablen in deiner Hauptklasse static sind (solltest du nicht machen) kannst du sie einfach so verwenden. sind nicht static musst du eine instanz deiner hauptklasse an die zweite klasse übergeben.

poste einfach mal deinen code
 
So ich habe mal schnell was hingefummelt.
Hier eine Klasse gui mit einem Knopf. So und dann möchte ich die Var b ( ich habe die mal als static gemacht ) in meine Klasse test übergeben. So das die Klasse test mit b rechen kann. Ichhabe mir das auslesen gespart es geht ja nur um das üebregen der Var b in die Klasse test




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

public class gui extends Frame {
  // Anfang Variablen
  static int b=50000;
  private Button button1 = new Button();
  // Ende Variablen

  public gui(String title) {
    // Frame-Initialisierung
    super(title);
    addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent evt) { System.exit(0); }
    });
    int frameWidth = 300;
    int frameHeight = 300;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2 ;
    setLocation(x, y);
    Panel cp = new Panel(null);
    add(cp);
    // Anfang Komponenten

    button1.setBounds(32, 40, 75, 25);
    button1.setLabel("button1");
    cp.add(button1);
    button1.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        button1ActionPerformed(evt);
        
      }
    });

    // Ende Komponenten

    setResizable(false);
    setVisible(true);
  }

  // Anfang Ereignisprozeduren
  public void button1ActionPerformed(ActionEvent evt) {

  }

  // Ende Ereignisprozeduren

  public static void main(String[] args) {
    new gui("gui");
  }

}

Code:
public class test {
 static int a=1,c;   // Hie soll b einfach nur übernommen werden von der Klasse GUI


  public static void main(String[] args) {
    c=a+b;					// Hier möchte ich b aus der Klasse gui verwenden
    System.out.println(c);
  }
}[quote][/quote]


Danke für jede Hilfe. Da sitzte ich schon seit 3 Stunden dran
 
füge der Klasse gui (Klassennamen immer groß schreiben) diese methode dazu

Code:
public int getB(){
return b;
}


Code:
public class test {


  public static void main(String[] args) {
int a = 1;
int c;

gui gui_klasse = new gui();
    c=a+gui_klasse.getB();               // Hier möchte ich b aus der Klasse gui verwenden
    System.out.println(c);
  }
}
 
wie wird die Klasse test aufgerufen?
das main impliziert, dass diese als eigenes Programm läuft,

dann hast du es ganz schwer, auf Informationen des anderen Programs zuzugreifen,
das willst du doch nicht wirklich oder?

widerspricht dem ursprünglichen
> Wenn ich nun auf start klicke in meiner GUI klicke, dann rufe ich meine zweite Klasse (z.B. rechnen) auf.
 
@ABISZ:

Dein Code ist einfach nur wirr und undurchdacht. Beide Klassen haben eine main Methode und scheinen einzeln zu laufen. Ich würd Dir vorschlagen, deinen Entwurf mal zu überarbeiten.

lr
 
SlaterB hat gesagt.:
wie wird die Klasse test aufgerufen?
das main impliziert, dass diese als eigenes Programm läuft,

dann hast du es ganz schwer, auf Informationen des anderen Programs zuzugreifen,
das willst du doch nicht wirklich oder?

widerspricht dem ursprünglichen
> Wenn ich nun auf start klicke in meiner GUI klicke, dann rufe ich meine zweite Klasse (z.B. rechnen) auf.

ist mir gar nicht aufgefallen und gibt für mich auch nicht viel Sinn. Ein Programm sollte nur eine main methode besitzen. Nicht jede Klasse seine eigene main-methode. Falls es tatsächlich 2 Programme sein sollten ergibt dies für mich wenig Sinn. Wie schon gesagt ???:L
 
Ich sagte ja ich habe mal schnell ein Demo programm gemacht


symbol : constructor gui()
location: class gui
gui gui_klasse = new gui();
^
1 error


ich habe das jetzt mal so gemacht wie Du gesagt hat.
aber leider macht er dann das
 
vermutlich weil die Klasse gui im Konstruktor einen String benötigt.

Code:
public class test {


  public static void main(String[] args) {
int a = 1;
int c;

gui gui_klasse = new gui("Test");
    c=a+gui_klasse.getB();               // Hier möchte ich b aus der Klasse gui verwenden
    System.out.println(c);
  }
}
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben