Problem beim Zugriff auf Daten GUI + Startklasse

Status
Nicht offen für weitere Antworten.

Mag.lov

Mitglied
Hallo,

ich bin absoluter Anfänger im bereich der Java-Programmierung

Mein Problem:

Ich habe eine Verwaltung geschrieben die auch soweit funktioniert.
Jetzt habe ich nur das Problem sie mit der GUI zu verbinden.

Meine Klassen:
Main.java <- Startklasse
Team.java
Mitarbeiter.java
SWindow.java <- GUI


In der Startklasse habe ich eine Ausgabe:
//
{System.out.println("Mitarbeiterliste:");
for(int i=0; objTeam_1.getIhrMitarbeiter(i)!=null;i++)
{
System.out.println(objTeam_1.getIhrMitarbeiter(i).getTNr()+" "
+objTeam_1.getIhrMitarbeiter(i).getName()+" "
+objTeam_1.getIhrMitarbeiter(i).getVorname());
}}
//

Die funktioniert in der Concole perfekt.

Aber wie greife ich jetzt aus der GUI drauf zu?

Dort habe ich einen Button und ein Textfeld
//
protected void btn_search_ActionPerformed(ActionEvent evt){
txt_print.setText("Hallo");
}
//

Wie komm ich jetzt an die Mitarbeiter das die ins Textfeld geschrieben werden, statt dem "Hallo", wenn ich auf den Button klicke?


2. Frage:

Wie kann ich die Textbox in Java auf Multiline stellen so dass man Mehrere Zeilen schreiben kann?

Würd mich sehr freuen wenn mir da jemand helfen könnte🙂

Lg Mag.lov
 
Aber wie greife ich jetzt aus der GUI drauf zu?
Wie ist deine Mitarbeiterliste eigentlich realisiert? Als Vector?

Du müsstest jedenfalls entweder die Klassen einander bekannt machen oder Main.java als Singleton implementieren.
Da SWindow ja aber vermutlich in Main.java aufgerufen wird, könntest du den Konstruktor der Klasse ändern und ihm deine Mitarbeiterliste als Argument übergeben. Bei einem Vector sähe das dann z. B. so aus:
Java:
public SWindow(Vector<Mitarbeiter> mitarbeiterListe) {
	//...Erzeugung der GUI.
}

Dort könntest du die Liste direkt auswerten oder sie an eine Methode übergeben, die dies dann erledigt. Die Informationen könntest du in eine TextArea bzw. JTextArea(bei Swing) schreiben, z. B. so:
Java:
public void printListe(Vector<Mitarbeiter> mitarbeiterListe) {
	for (int i=0; i<=mitarbeiterListe.size-1; i++) {
		Mitarbeiter m = mitarbeiterListe.get(i);
		textArea.append(m.getTNr() + " - " + m.getName() + " - " + m.getVorname() + "\n");
	}
}

Wie kann ich die Textbox in Java auf Multiline stellen so dass man Mehrere Zeilen schreiben kann?
TextField bzw. JTextField können nicht mehrere Zeilen darstellen, dazu benötigt man eine Komponente wie z. B. JTextArea.

Noch eine Sache: Bei Java vermeidet man es in aller Regel, Namen wie "btn_search" zu vergeben und nutzt stattdessen die "CamelCase"-Schreibweise, also "btnSearch".
 
Zuletzt bearbeitet von einem Moderator:
Ich versteh das leider nicht so ganz mit dem Übergeben der Daten.
Hier mal mein gekürzter Code:

Security.java - Main Class
Code:
package securityPack;

public class Security {
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Team objTeam_1=new Team();
		Team objTeam_2=new Team();
		Team objTeam_3=new Team();
		
		//Team1
		Mitarbeiter objMitarbeiter_1=new Mitarbeiter();
		Mitarbeiter objMitarbeiter_2=new Mitarbeiter();
		..;
		//Team2
		Mitarbeiter objMitarbeiter_11=new Mitarbeiter();
		Mitarbeiter objMitarbeiter_12=new Mitarbeiter();
		..
		//Team3
		Mitarbeiter objMitarbeiter_21=new Mitarbeiter();
		Mitarbeiter objMitarbeiter_22=new Mitarbeiter();
		..
		
		//Team Nummer
		objMitarbeiter_1.setTNr("1");
		objMitarbeiter_2.setTNr("2");
		..
		
		//Anrede
		objMitarbeiter_1.setAnrede("Herr");
		..
		
		//Name
		objMitarbeiter_1.setName("Maier");
		..
		
		//Vorname
		objMitarbeiter_1.setVorname("Alexander");
		objMitarbeiter_2.setVorname("Steffen");
		..
		
		//Anschrift
		..
		
		//Telefon
		..
		
		//Alter
		objMitarbeiter_1.setAlter("32");
		objMitarbeiter_2.setAlter("23");
		..
		
		//Gewicht
		objMitarbeiter_1.setGewicht("90");
		objMitarbeiter_2.setGewicht("95");
		..
		
		//Ausbildungsgrad
		objMitarbeiter_1.setAusbildungsgrad("Chef");
		objMitarbeiter_2.setAusbildungsgrad("Vertreter");
		objMitarbeiter_3.setAusbildungsgrad("Sanitäter");
		objMitarbeiter_4.setAusbildungsgrad("Teammember");
		..
		
		objTeam_1.setBezeichnung("Personenschutz");
		..
		
		objTeam_2.setBezeichnung("Objektschutz");
		..
		
		objTeam_3.setBezeichnung("Veranstaltungsüberwachung");
		..
		
		//Teamzuweisung Team 1
		objTeam_1.setIhrMitarbeiter(objMitarbeiter_1, 0);
		objTeam_1.setIhrMitarbeiter(objMitarbeiter_2, 1);
		..
		
		//Teamzuweisung Team 2
		objTeam_2.setIhrMitarbeiter(objMitarbeiter_11, 0);
		objTeam_2.setIhrMitarbeiter(objMitarbeiter_12, 1);
		..
		
		//Teamzuweisung Team 3
		objTeam_3.setIhrMitarbeiter(objMitarbeiter_21, 0);
		objTeam_3.setIhrMitarbeiter(objMitarbeiter_22, 1);
		..
	

	{System.out.println("Hallo");
	for(int i=0; objTeam_1.getIhrMitarbeiter(i)!=null;i++)
	{
		System.out.println(objTeam_1.getIhrMitarbeiter(i).getTNr()+" "
		+objTeam_1.getIhrMitarbeiter(i).getName()+" "
		+objTeam_1.getIhrMitarbeiter(i).getVorname());
	}}
	
}}
Mitarbeiter.java:

Code:
package securityPack;
import securityPack.Team;

public class Mitarbeiter {
	//Eigenschaften
	private String tNr;
	private String anrede;
	private String name;
	private String vorname;
	private String anschrift;
	private String tel;
	private String alter;
	private String gewicht;
	private String ausbildungsgrad;
	private Team[] seinTeam=new Team[2];
	
	//Methoden
	public String getTNr()
	{
		return tNr;
	}
	
	public void setTNr( String tNr )
	{
		this.tNr = tNr;
	}
	
	public String getAnrede()
	{
		return anrede;
	}
	
	public void setAnrede( String anrede )
	{
		this.anrede = anrede;
	}
	
	public String getName()
	{
		return name;
	}
	
	public void setName( String name )
	{
		this.name = name;
	}
	
	....
}

Team.java:

Code:
package securityPack;
import securityPack.Mitarbeiter; 

public class Team {
	
	//Eigenschaften
	private String bezeichnung;
	private Mitarbeiter[] ihrMitarbeiter = new Mitarbeiter[11];
	
	//Ausruestung
	private String waffe1;
	private String waffe2;
	private String schutz1;
	private String schutz2;
	private String zusatz1;
	private String zusatz2;
	
	public String getBezeichnung()
	{
		return bezeichnung;
	}
	
	public void setBezeichnung(String bezeichnung)
	{
		this.bezeichnung = bezeichnung;
	}
	
	public Mitarbeiter getIhrMitarbeiter(int pStelle)
	{
		return ihrMitarbeiter[pStelle];
	}
	
	public void setIhrMitarbeiter(Mitarbeiter ihrMitarbeiter, int pStelle)
	{
		this.ihrMitarbeiter[pStelle]=ihrMitarbeiter;
	}
	
	public String getWaffe1()
	{
		return waffe1;
	}
	
	public void setWaffe1(String waffe1)
	{
		this.waffe1 = waffe1;
	}
	
	public String getWaffe2()
	{
		return waffe2;
	}
	
	public void setWaffe2(String waffe2)
	{
		this.waffe2 = waffe2;
	}
	
	public String getSchutz1()
	{
		return schutz1;
	}
	
	public void setSchutz1(String schutz1)
	{
		this.schutz1 = schutz1;
	}
	
	public String getSchutz2()
	{
		return schutz2;
	}
	
	public void setSchutz2(String schutz2)
	{
		this.schutz2 = schutz2;
	}
	
	public String getZusatz1()
	{
		return zusatz1;
	}
	
	public void setZusatz1(String zusatz1)
	{
		this.zusatz1 = zusatz1;
	}
	
	public String getZusatz2()
	{
		return zusatz2;
	}
	
	public void setZusatz2(String zusatz2)
	{
		this.zusatz2 = zusatz2;
	}
}

SWindow.java: - GUI Form

Code:
package securityPack;
//import securityPack.Team; 
//import securityPack.Mitarbeiter; 

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

import javax.swing.BorderFactory;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JTextArea;
import javax.swing.JTextField;

import javax.swing.WindowConstants;
import javax.swing.SwingUtilities;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class SWindow extends javax.swing.JFrame {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JLabel jLabel1;
	private JTextField txtAuftraggeber;
	private JLabel jLabel2;
	private JLabel jLabel3;
	private JTextField txtDateB;
	private JLabel jLabel4;
	private JLabel jLabel5;
	private JTextArea txtPrintText;
	private JTextField txtEinsatzort;
	private JButton btnPrint;
	private JButton btnSearch;
	private JComboBox cboProfil;
	private JTextField txtDateA;

	/**
	* Auto-generated main method to display this JFrame
	*/
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				SWindow inst = new SWindow();
				inst.setLocationRelativeTo(null);
				inst.setVisible(true);
			}
		});
		
	}
	
	public SWindow() {
		super();
		initGUI();
	}
	
	private void initGUI() {
		try {
	setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(null);
			this.setTitle("SecurityTool");
			getContentPane().setBackground(new java.awt.Color(0,0,0));
			{
				jLabel1 = new JLabel();
				getContentPane().add(jLabel1);
				jLabel1.setText("Auftraggeber:");
				jLabel1.setBounds(12, 12, 81, 14);
				jLabel1.setForeground(new java.awt.Color(255,255,255));
			}
			{
				txtAuftraggeber = new JTextField();
				getContentPane().add(txtAuftraggeber);
				txtAuftraggeber.setBounds(93, 9, 314, 21);
			}
			{
				jLabel2 = new JLabel();
				getContentPane().add(jLabel2);
				jLabel2.setText("Zeitraum von:");
				jLabel2.setBounds(12, 38, 81, 14);
				jLabel2.setForeground(new java.awt.Color(255,255,255));
			}
			{
				txtDateA = new JTextField();
				getContentPane().add(txtDateA);
				txtDateA.setBounds(93, 35, 81, 21);
			}
			{
				jLabel3 = new JLabel();
				getContentPane().add(jLabel3);
				jLabel3.setText("bis:");
				jLabel3.setBounds(186, 38, 22, 14);
				jLabel3.setForeground(new java.awt.Color(255,255,255));
			}
			{
				txtDateB = new JTextField();
				getContentPane().add(txtDateB);
				txtDateB.setBounds(220, 35, 78, 21);
			}
			{
				jLabel4 = new JLabel();
				getContentPane().add(jLabel4);
				jLabel4.setText("Profil:");
				jLabel4.setBounds(12, 64, 81, 14);
				jLabel4.setForeground(new java.awt.Color(255,255,255));
			}
			{
				ComboBoxModel cboProfilModel = 
					new DefaultComboBoxModel(
							new String[] { "", "Personenschutz", "Objektschutz", "Veranstaltungsüberwachung" });
				cboProfil = new JComboBox();
				getContentPane().add(cboProfil);
				cboProfil.setModel(cboProfilModel);
				cboProfil.setBounds(93, 61, 205, 21);
				cboProfil.setBackground(new java.awt.Color(255,255,255));
			}
			{
				btnSearch = new JButton();
				getContentPane().add(btnSearch);
				btnSearch.setText("Suchen");
				btnSearch.setBounds(310, 35, 97, 47);
				btnSearch.setBackground(new java.awt.Color(255,255,255));
				
				//btn_search add action
				btnSearch.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
					btnSearch_ActionPerformed(evt);
					}});
				//
				
			}
			{
				btnPrint = new JButton();
				getContentPane().add(btnPrint);
				btnPrint.setText("Drucken");
				btnPrint.setBounds(285, 258, 123, 21);
				btnPrint.setBackground(new java.awt.Color(255,255,255));
			}
			{
				jLabel5 = new JLabel();
				getContentPane().add(jLabel5);
				jLabel5.setText("Einsatzort:");
				jLabel5.setBounds(12, 90, 81, 14);
				jLabel5.setForeground(new java.awt.Color(255,255,255));
			}
			{
				txtEinsatzort = new JTextField();
				getContentPane().add(txtEinsatzort);
				txtEinsatzort.setBounds(93, 87, 314, 21);
			}
			{
				txtPrintText = new JTextArea();
				getContentPane().add(txtPrintText);
				txtPrintText.setBounds(93, 120, 314, 126);
			}
			pack();
			this.setSize(427, 311);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	protected void btnSearch_ActionPerformed(ActionEvent evt){
		//System.exit(0);
		//txt_print.setText(objTeam_1.getIhrMitarbeiter(i).getTNr());
		//txt_print.setText(Team.this.getIhrMitarbeiter(1).getName());
		txtPrintText.setText("Test");
	}


}

Wie müsste das jetzt aussehen mit dem übergeben?
Ich habe nämlich nirgends etwas von Vector...

Ich möchte einfach nur wenn ich auf btnSearch in der GUI(SWindow.java) klicke
ich die Daten wie in der Startklasse Security.java abrufen kann und in der Textbox ausgeben kann

Ps.: In der Startklasse wird SWindow nicht aufgerufen. Wie mach ich das?

Arbeite übrigens mit Eclipse (falls von bedeutung)
 
Zuletzt bearbeitet:
In der Startklasse wird SWindow nicht aufgerufen. Wie mach ich das?
Einfach aufrufen und fertig:
Java:
...
public class Security {
    public static void main(String[] args) {
        final Team objTeam_1 = new Team();
        final Team objTeam_2 = new Team();
        final Team objTeam_3 = new Team();
...
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                SWindow inst = new SWindow();
                inst.setLocationRelativeTo(null);
                inst.setVisible(true);
                inst.setMitarbeiter(new Team[]{objTeam_1, objTeam_2, objTeam_3});
            }
        });
    }
}
Java:
public class SWindow extends javax.swing.JFrame {
...
    private Team[] teams;
...
    void setMitarbeiter(Team[] team) {
        this.teams = team;
    }
    protected void btnSearch_ActionPerformed(ActionEvent evt) {
        Mitarbeiter a = teams[0].getIhrMitarbeiter(0);
        txtPrintText.setText(a.getAnrede() + " " + a.getVorname() + " " +
                a.getName() + "\nTel.: " + a.getTNr() + "\n");
    }
}
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben