# String in eine andere Klasse übergeben



## Stifler21 (10. Nov 2010)

Hallo,

Ich habe eine kleines Problem. Ich habe ein Email Programm mit zwei Klassen.
Erste Klasse GUI zweite Klasse MainClass.

Jetzt habe ich in der GUI Klasse mehrere Strings die in in die MainClass übertragen will wenn ich den jButtonsenden drücke. Deklariert habe ich schon alles nur der befehl zum übertragen weiß ich einfach nicht.

Erste Klasse GUI:


```
package Email;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JTextField;

import javax.swing.WindowConstants;
import javax.swing.SwingUtilities;


public class EmailGUI extends javax.swing.JFrame implements ActionListener
{
	private JTextField jAbsender;
	private JTextField jAN;
	private JButton jButtonsenden;
	private JTextField jTextfeld;
	private JTextField jBE;
	private JTextField jAB;
	private JTextField jBetreff;
	private JTextField jEmpfaenger;
	private MainClass mail = new MainClass();
	
	
	private String von;
	private String an;
	private String betreff;
	private String Text;
	
	
	public void actionPerformed(ActionEvent e)
	{
		if(e.getSource() == jButtonsenden)
		{
			
			von		= (jAbsender.getText());
			an 		= (jEmpfaenger.getText());
			betreff = (jBetreff.getText());
			Text 	= (jTextfeld.getText());
			
			
			Hier fehlt jetzt der Befehl zum die Strings zu übertragen.
```

Zweite Klasse MainClass ihr will ich in die senden Methode die Strings übertragen:


```
package Email;

import javax.mail.Session;
import javax.mail.Message;
import javax.mail.Transport;
import javax.mail.MessagingException;
import javax.mail.internet.AddressException;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.InternetAddress;


import java.util.Properties;

public class MainClass 
{
  public static void senden (String von, String an, String betreff, String Text ) throws AddressException, MessagingException 
 
    String from = von;
    String to = an;
    String subject = betreff;
    String text = Text;
    String user ="Schmid.mfte2@web.de";
    String password = "";
    String host ="mail.web.de";
    
   
    
    
    
    

    Properties properties = new Properties();
    properties.put("mail.smtp.host", "smtp.some-domain.com");
    properties.put("mail.smtp.port", "25");
    Session session = Session.getDefaultInstance(properties, null);

    Message message = new MimeMessage(session);
    message.setFrom(new InternetAddress(from));
    message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
    message.setSubject(subject);
    message.setText(text);
    Transport tr = session.getTransport("smtp");
    tr. connect (host, user, password);
    message.saveChanges();
    tr.sendMessage(message, message.getAllRecipients());
    tr.close();
    System.out.println ("Email wurde verschickt an"+to);
    

    Transport.send(message);
  }
}
```
Gruß Steffen


----------



## XHelp (10. Nov 2010)

```
mail.senden(von,an,betreff,Text);
```
? :bahnhof:
[EDIT]
Ah, wie Tente es richtig bemerkt hat, ist die sogar static.
[/EDIT]


----------



## Tente (10. Nov 2010)

MainClass.senden(...) ??


----------



## ARadauer (10. Nov 2010)

die frage ist also, wie man eine Methode aufruft?

weil sie static ist:

```
MainClass.senden(von, an, betrff,Text);
```


----------



## Stifler21 (10. Nov 2010)

Wenn ich

```
mail.senden(von,an,betreff,Text);
```
dann wird die Methode senden rot unterstrichen

und wenn ich 

```
MainClass.senden(von,an,betreff,Text);
```
mach dann passiert das gleiche.

Gruß Steffen


----------



## ARadauer (10. Nov 2010)

das ist nur zur Dekoration... das passt schon


----------



## XHelp (10. Nov 2010)

"rot unterstrichen" ist ziemlich nichtssagen. Wie heißt der Fehler?? Wo schreibst du es rein?


----------



## ARadauer (10. Nov 2010)

XHelp ich denke nicht das es ein Fehler ist, sonst hätte er diesen sicher gepostet... ich denke es ist Deko...

oder er fängt die Exception nicht die er bei senden wirft ;-)


```
try {
               MainClass.senden(von, an, betreff, Text);
            } catch (Exception e2) {
              e2.printStackTrace();
              System.out.println("ging nicht");
            }
```


----------



## ARadauer (10. Nov 2010)

mhn was ich jetzt noch sehe



```
public static void senden (String von, String an, String betreff, String Text ) throws AddressException, MessagingException 
 
    String from = von;
```

da fehlt ein { nach MessagingException


----------



## Stifler21 (10. Nov 2010)

Ich schreibe es in die EmailGUI in die if Schleife


```
public void actionPerformed(ActionEvent e)
	{
		if(e.getSource() == jButtonsenden)
		{
			
			von		= (jAbsender.getText());
			an 		= (jEmpfaenger.getText());
			betreff = (jBetreff.getText());
			Text 	= (jTextfeld.getText());
			
			
			MainClass.senden(von,an,betreff,Text);
```

Ich weiß nicht muss noch irgendwo ein return mit rein?


----------



## Stifler21 (10. Nov 2010)

Stimmt die { hat gefehlt aber das ändert leider nichts am alten fehler..


----------



## ARadauer (10. Nov 2010)

zwei leute fragen nach der fehlermeldung und du fragst ob du ein return brauchst?
nö, try catch fehlt dir...


----------



## XHelp (10. Nov 2010)

if-schleife.de

Wie gesagt: Fehlerbeschreibung wäre schon etwas hilfreich... Hilft denn das Auffangen der Exception?


----------



## ARadauer (10. Nov 2010)

Naja das ist der Grund warum ihm senden unterstrichen wird

Unhandled Exception of Type usw...


----------



## Stifler21 (10. Nov 2010)

Ja musste erst ein paar Sachen ändern damit die Fehlermeldung kommt.

Das ist Sie:

Exception in thread "AWT-EventQueue-0" java.lang.Error: Unresolved compilation problems: 
	Unhandled exception type AddressException
	Unhandled exception type MessagingException


----------



## ARadauer (10. Nov 2010)

werd ich heute ignoriert?
schau mal was ich da oben geschrieben habe 16:35? dachte mir schon das das der fehler ist...

weiter oben 16:26 hab ich sogar schon die lösung...


----------



## Stifler21 (10. Nov 2010)

Hab ich gerade eben ausprobiert. Geht leider auch nicht.
Immer noch der gleiche Fehler


----------



## XHelp (10. Nov 2010)

Poste mal den endgültigen Code, mit dem du es ausprobierst...


----------



## Stifler21 (10. Nov 2010)

```
package Email;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JTextField;

import javax.swing.WindowConstants;
import javax.swing.SwingUtilities;


public class EmailGUI extends javax.swing.JFrame implements ActionListener
{
	private JTextField jAbsender;
	private JTextField jAN;
	private JButton jButtonsenden;
	private JTextField jTextfeld;
	private JTextField jBE;
	private JTextField jAB;
	private JTextField jBetreff;
	private JTextField jEmpfaenger;
	
	
	
	private String von;
	private String an;
	private String betreff;
	private String Text;
	
	
	public void actionPerformed(ActionEvent e)
	{
		if(e.getSource() == jButtonsenden)
		{
			
			von		= (jAbsender.getText());
			an 		= (jEmpfaenger.getText());
			betreff = (jBetreff.getText());
			Text 	= (jTextfeld.getText());
			
			
			   try {
	               MainClass.senden(von, an, betreff, Text);
	            } catch (Exception e2) {
	              e2.printStackTrace();
	              System.out.println("ging nicht");
	              
	        }
		}
	}

	

	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				EmailGUI inst = new EmailGUI();
				inst.setLocationRelativeTo(null);
				inst.setVisible(true);
			}
		});
	}
	
	public EmailGUI() {
		super();
		initGUI();
	}
	
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(null);
			{
				jAbsender = new JTextField();
				getContentPane().add(jAbsender);
				jAbsender.setBounds(94, 25, 287, 21);
			}
			{
				jEmpfaenger = new JTextField();
				getContentPane().add(jEmpfaenger);
				jEmpfaenger.setBounds(94, 60, 287, 20);
			}
			{
				jBetreff = new JTextField();
				getContentPane().add(jBetreff);
				jBetreff.setBounds(94, 97, 287, 22);
			}
			{
				jAB = new JTextField();
				getContentPane().add(jAB);
				jAB.setText("AB:");
				jAB.setBounds(17, 26, 45, 20);
			}
			{
				jAN = new JTextField();
				getContentPane().add(jAN);
				jAN.setText("AN:");
				jAN.setBounds(17, 61, 45, 20);
			}
			{
				jBE = new JTextField();
				getContentPane().add(jBE);
				jBE.setText("Betreff:");
				jBE.setBounds(17, 96, 45, 22);
			}
			{
				jTextfeld = new JTextField();
				getContentPane().add(jTextfeld);
				jTextfeld.setBounds(17, 134, 364, 186);
			}
			{
				jButtonsenden = new JButton();
				getContentPane().add(jButtonsenden);
				jButtonsenden.setText("senden");
				jButtonsenden.setBounds(398, 290, 112, 26);
				jButtonsenden.addActionListener(this);
			}
			pack();
			this.setSize(536, 370);
		} catch (Exception e) {
		    //add your error handling code here
			e.printStackTrace();
		}
	}

}
```




```
package Email;

import javax.mail.Session;
import javax.mail.Message;
import javax.mail.Transport;
import javax.mail.MessagingException;
import javax.mail.internet.AddressException;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.InternetAddress;


import java.util.Properties;

public class MainClass 
{
  public static void senden (String von, String an, String betreff, String Text ) throws AddressException, MessagingException 
  { 
    String from = von;
    String to = an;
    String subject = betreff;
    String text = Text;
    String user ="Schmid.mfte2@web.de";
    String password = "";
    String host ="mail.web.de";
    
    

    Properties properties = new Properties();
    properties.put("mail.smtp.host", "smtp.some-domain.com");
    properties.put("mail.smtp.port", "25");
    Session session = Session.getDefaultInstance(properties, null);

    Message message = new MimeMessage(session);
    message.setFrom(new InternetAddress(from));
    message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
    message.setSubject(subject);
    message.setText(text);
    Transport tr = session.getTransport("smtp");
    tr. connect (host, user, password);
    message.saveChanges();
    tr.sendMessage(message, message.getAllRecipients());
    tr.close();
    System.out.println ("Email wurde verschickt an"+to);
    

    Transport.send(message);
  }
}
```


----------



## XHelp (10. Nov 2010)

So auf den ersten blick sieht es ganz ok aus. Hast du denn auch neu kompiliert?


----------



## Stifler21 (10. Nov 2010)

Jo habs auch schon Neu kompiliert. Ist irgendwie komisch...


----------



## ARadauer (10. Nov 2010)

Stifler21 hat gesagt.:


> Jo habs auch schon Neu kompiliert. Ist irgendwie komisch...



ich denke nicht.
der Code stimmt jetzt.

Wie kompilierst du? Auf der consolse, mit eclipse, maven, ant?

zeig mal einen Screenshot wie es im Moment aussieht...

könnte sein, das noch eine jar fehlt und eclipse deshalb nicht kompiliert....


----------



## Stifler21 (10. Nov 2010)

Ja ich benutze Eclipse.
Von was genau brauchst du einen Sreenshot?

Wenn ich das Programm starte dann kommt in der Console "ging nicht"
also gibt es noch ein Problem mit dem String..


----------



## Stifler21 (10. Nov 2010)

Hey jetzt funktioniert es auf einmal.
Hab einfach Eclipse mal neu gestartet.

Coole Sache..

Vielen Dank für eure Hilfe!


Gruß Steffen


----------



## XHelp (10. Nov 2010)

Stifler21 hat gesagt.:


> Hab ich gerade eben ausprobiert. Geht leider auch nicht.
> Immer noch der gleiche Fehler





Stifler21 hat gesagt.:


> Wenn ich das Programm starte dann kommt in der Console "ging nicht"
> also gibt es noch ein Problem mit dem String..



Ja was denn nun??? Zuerst sagst du, dass du nicht kompilieren kannst, jetzt sagst du, dass kein Programm läuft und die Output gibt....


----------



## Stifler21 (10. Nov 2010)

Ja wie gesagt hab Eclipse neu gestartet und dann konnte ich es kompilieren.
Da war irgendwo der Wurm drin..


----------

