GUI Verknüpfungen der einzelnen Buttons

SZAG

Grünschnabel
Hallo liebe User,

ich arbeite derzeitig an einen Programm für einen Regelvergleich. Und nun habe ich folgendes Problem. Ich habe eine GUI dort kann man auswählen was getestet werden soll ein Beispiel Zusatzdamm, nun soll das Programm wissen welche Attribute er brauch und ein LogFile durchsuchen und mir die gesuchten Attribute in ein Textfile reinspeichern. Die Frage ist wie bekomme ich es hin, das er mir einen Datei einliest und diese durchsucht und ich noch auf der GUI aussuchen kann welche Regel getestet werden soll und nur diese Parameter in das neue Textfile gespeichert werden.

für hilfreiche Tipps danke ich im Vorraus

GUI:
Java:
import java.awt.EventQueue;


public class GUIJava extends JPanel
implements ActionListener{
	static private final String newline = "\n";
	private JFrame frmJavaRegelvergleich;
	private JTextField txtReturnval;
	 JFileChooser fc;
	 JTextArea log;
	

	 * Launch the application.
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					GUIJava window = new GUIJava();
					window.frmJavaRegelvergleich.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			
			}
		});
	}
	 * Create the application.
	public GUIJava() {
		initialize();	
	}
	/**
	 * Initialize the contents of the frame.
	 */

	private void initialize() {
		frmJavaRegelvergleich = new JFrame();
		frmJavaRegelvergleich.setTitle("Java Regelvergleich");
		frmJavaRegelvergleich.setBounds(100, 100, 450, 572);
		frmJavaRegelvergleich.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		GridBagLayout gridBagLayout = new GridBagLayout();
		gridBagLayout.columnWidths = new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
		gridBagLayout.rowHeights = new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
		gridBagLayout.columnWeights = new double[]{0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE};
		gridBagLayout.rowWeights = new double[]{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE};
		frmJavaRegelvergleich.getContentPane().setLayout(gridBagLayout);
		
		
		
		//JPanel Bezeichnung Ausgabe auf der GUI
		JLabel label = new JLabel("LogFile");
		GridBagConstraints gbc_label = new GridBagConstraints();
		gbc_label.insets = new Insets(0, 0, 5, 5);
		gbc_label.gridx = 3;
		gbc_label.gridy = 1;
		frmJavaRegelvergleich.getContentPane().add(label, gbc_label);
		
		
		txtReturnval = new JTextField();
		txtReturnval.setColumns(10);
		GridBagConstraints gbc_txtReturnval = new GridBagConstraints();
		gbc_txtReturnval.gridwidth = 5;
		gbc_txtReturnval.insets = new Insets(0, 0, 5, 5);
		gbc_txtReturnval.fill = GridBagConstraints.HORIZONTAL;
		gbc_txtReturnval.gridx = 5;
		gbc_txtReturnval.gridy = 1;
		frmJavaRegelvergleich.getContentPane().add(txtReturnval, gbc_txtReturnval);
		
		JButton button = new JButton("browse...");
		button.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				

				System.out.println("Browse Button Aktiv");
				JFileChooser fc = new JFileChooser();
				int returnVal = fc.showDialog(GUIJava.this, "Attach");
				
				File file = new File(this.toString());
				System.out.println("File "+ file);
				
				try {
					main.liesLog(file);
				} catch (IOException e1) {
					System.out.println("Fehler beim lesen der Datei!");
					e1.printStackTrace();
				}
			
			}
				});
		GridBagConstraints gbc_button = new GridBagConstraints();
		gbc_button.insets = new Insets(0, 0, 5, 5);
		gbc_button.gridx = 10;
		gbc_button.gridy = 1;
		frmJavaRegelvergleich.getContentPane().add(button, gbc_button);
		
	
		//Startet Main und führt das Programm aus
		JButton btnNewButton = new JButton("Starte Vergleich");
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				long zeitvorher;
				long zeitnachher;
				System.out.println("Starte den Vergleich der Regel");
				zeitvorher = System.currentTimeMillis();
				main.Parser();
				zeitnachher = System.currentTimeMillis();
				System.out.println("Zeit benötigt für Starte Vergleich: "+ ((zeitnachher - zeitvorher)/1000)+"Sekunden");

			}
		});
		
		JLabel lblRegel = new JLabel("Regel");
		GridBagConstraints gbc_lblRegel = new GridBagConstraints();
		gbc_lblRegel.insets = new Insets(0, 0, 5, 5);
		gbc_lblRegel.gridx = 3;
		gbc_lblRegel.gridy = 3;
		frmJavaRegelvergleich.getContentPane().add(lblRegel, gbc_lblRegel);
		
		JComboBox comboBox = new JComboBox();
		comboBox.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				
				System.out.println("Zu testende Regel: " + getName());
				
				//main.liesLog(file);
				
				
			}
		});
		comboBox.setModel(new DefaultComboBoxModel(new String[] {"Gie\u00DFgeschwindigkeit", "Zusatzdamm", "Baumann", "H2 Probe", "Zu testende Regel..."}));
		comboBox.setSelectedIndex(4);
		comboBox.setToolTipText("");
		GridBagConstraints gbc_comboBox = new GridBagConstraints();
		gbc_comboBox.gridwidth = 4;
		gbc_comboBox.insets = new Insets(0, 0, 5, 5);
		gbc_comboBox.fill = GridBagConstraints.HORIZONTAL;
		gbc_comboBox.gridx = 6;
		gbc_comboBox.gridy = 3;
		frmJavaRegelvergleich.getContentPane().add(comboBox, gbc_comboBox);
		
		JProgressBar progressBar = new JProgressBar();
		GridBagConstraints gbc_progressBar = new GridBagConstraints();
		gbc_progressBar.gridwidth = 8;
		gbc_progressBar.insets = new Insets(0, 0, 5, 5);
		gbc_progressBar.gridx = 3;
		gbc_progressBar.gridy = 16;
		frmJavaRegelvergleich.getContentPane().add(progressBar, gbc_progressBar);
		GridBagConstraints gbc_btnNewButton = new GridBagConstraints();
		gbc_btnNewButton.insets = new Insets(0, 0, 0, 5);
		gbc_btnNewButton.gridx = 8;
		gbc_btnNewButton.gridy = 17;
		frmJavaRegelvergleich.getContentPane().add(btnNewButton, gbc_btnNewButton);
		
		//JButton Abbrechen, bricht Porgramm nach bestätigung ab******
		
		JButton btnAbbrechen = new JButton("Abbrechen");
		btnAbbrechen.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				System.exit(0);
			}
		});
		GridBagConstraints gbc_btnAbbrechen = new GridBagConstraints();
		gbc_btnAbbrechen.insets = new Insets(0, 0, 0, 5);
		gbc_btnAbbrechen.gridx = 10;
		gbc_btnAbbrechen.gridy = 17;
		frmJavaRegelvergleich.getContentPane().add(btnAbbrechen, gbc_btnAbbrechen);
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		
	}

}


Main:
Java:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.rmi.RemoteException;
import java.util.ArrayList;
import java.io.*;

import javax.xml.rpc.ServiceException;
import soapclasses.DecisionServiceException;
import soapclasses.DecisionServiceSZFG_TS_Prototyp_Service;
import soapclasses.DecisionServiceSZFG_TS_Prototyp_ServiceLocator;
import soapclasses.DecisionServiceSZFG_TS_Prototyp_PortType;
import soapclasses.EingangsdatenTyp;
import soapclasses.AusgangsdatenTyp;
import soapclasses.Eingangsdaten;
import soapclasses.Ausgangsdaten;
import soapclasses.DecisionServiceRequest;
import soapclasses.DecisionServiceResponse;

public class main {

	/*
	 * Globale Variablen deklarieren
	 */
	private static DecisionServiceSZFG_TS_Prototyp_Service service = new DecisionServiceSZFG_TS_Prototyp_ServiceLocator();
	private static DecisionServiceSZFG_TS_Prototyp_PortType decision;
	private static EingangsdatenTyp eingangsdaten = new EingangsdatenTyp();
	private static AusgangsdatenTyp ausgangsdaten = new AusgangsdatenTyp();
	private static Eingangsdaten input = new Eingangsdaten();
	private static Ausgangsdaten output = new Ausgangsdaten();
	private static DecisionServiceRequest request = new DecisionServiceRequest();
	private static DecisionServiceResponse response = new DecisionServiceResponse();

	/**
	 * @param args
	 * @throws IOException 
	 * @throws DecisionServiceException
	 * @throws ServiceException
	 * @throws RemoteException
	 */

	/*
	 * Ausführen der Methoden // Eingangsdaten befüllen, Regel ausführen,
	 * Ausgangsdaten ausgeben
	 */
	
	
	public static void LeseDateiEin() throws IOException{
		
		byte zeichen;
		
		
		String text= "";
		String dateiName="LogFile.txt";
		
		FileInputStream leseStrom = new FileInputStream(dateiName);
		do{
			zeichen = (byte)leseStrom.read();
			System.out.println(zeichen+" ");
			text += (char)zeichen;
		}while (zeichen != -1);
		leseStrom.close();
		System.out.println();
		System.out.println(text);
	}
		
	
	public static void Parser(){
	
	}
	
	//File einlesen
	// und Attribute in Array setzen
public static void liesLog(File file) throws IOException{
	
	byte zeichen;
	
	String text= "";
	//String dateiName="C:/data.txt";
	File nimmDatei = file;
	
	FileInputStream leseStrom = new FileInputStream(nimmDatei);
	do{
		zeichen = (byte)leseStrom.read();
		System.out.println(zeichen+" ");
		text += (char)zeichen;
	}while (zeichen != -1);
	leseStrom.close();
	System.out.println();
	System.out.println(text);
}
	

	public static void main(String[] args) throws DecisionServiceException,
			RemoteException, ServiceException {

		setEingangsdaten();
		Regelanfrage();
		printAusgangsdaten();

	}


	
	
	/*
	 * Eingangsdaten definieren
	 */
	public static void setEingangsdaten() {
		eingangsdaten.setBREITE_GESAMT(544);
		eingangsdaten.setANWEISUNGSSCHLUESSEL_1(2374237);
		eingangsdaten.setCU_WERT(23424.0);
		
	}

	/*
	 * Ausgangsdaten über System.out.println in der Konsole ausgeben
	 */
	public static void printAusgangsdaten() {
		System.out.println(response.getDecisionID());
		System.out.println(ausgangsdaten.getBAUMANN());
		System.out.println(ausgangsdaten.getABDECKMASSE());
		System.out.println(ausgangsdaten.getDAMM());
		System.out.println(ausgangsdaten.getKONIZITAET());
		System.out.println(ausgangsdaten.getENTZUNDERUNG());
		System.out.println(ausgangsdaten.getGIESSPULVER());
		System.out.println(ausgangsdaten.getH2PROBE());
		System.out.println(ausgangsdaten.getSTOPFEN());
	}

	/*
	 * Regelanfrage ausführen
	 */
	public static void Regelanfrage() throws ServiceException,
		
		//Proxy definieren
		DecisionServiceException, RemoteException {
		((DecisionServiceSZFG_TS_Prototyp_ServiceLocator) service)
				.setDecisionServiceSOAPhgestmr1EndpointAddress("http://hgestmr1:8080/DecisionService/ws/SZFG_TS_Prototyp_RuleApp/SZFG_TS_Prototyp?WSDL");

		DecisionServiceSZFG_TS_Prototyp_PortType decision = service
				.getDecisionServiceSOAPhgestmr1();

		//Eingangsdaten in Input Objekt | Input in Request
		input.setEingangsdaten(eingangsdaten);
		request.setEingangsdaten(input);

		//Regelanfrage ausführen
		response = decision.executeDecisionService(request);

		//Ausgangsdaten Klasse befüllen
		output = response.getAusgangsdaten();
		ausgangsdaten = output.getAusgangsdaten();
	}

}

Bitte nicht so streng mit mir sein. Bin gerade erst in die Firma gekommen und mir wurde JAVA windows Builder mit Eclipse ziemlich aufgehalst und kenne mich daher nicht so gut aus :)
 
Zuletzt bearbeitet von einem Moderator:
Hi und willkommen im Forum.

Kannst du deinen Code bitte in java-Tags statt code-Tags fassen? (siehe meine Signatur), das liest sich besser.

Ein paar Code-Richtlinien:
• Klassennamen schreibt man groß
• Methodennamen schreibt man klein
• Attribute macht man so wenig sichtbar wie möglich, also fast immer private oder protected

Was ist „Regelvergleich“ ?
Du willst also folgendes:
• per JFileChooser den Nutzer die Datei(en) auswählen lassen
• diese Datei(en) einlesen und daraus eine Liste generieren, aus der der Nutzer eine/mehrere Elemente (Regeln) wählen kann
• diese ausgewählten Elemente darstellen
Richtig?

In welchem Format liegen die Regeln vor? ist das Text, der angezeigt werden soll? Zahlen/Binärdaten, die visualisiert werden sollen? Wie sind die Daten strukturiert (XML, CSV, …)?
 
Was ist „Regelvergleich“ ?
variablen zB C_Wert, Güteschlüssel etc werden gegen einen Server geschmissen welcher dann Ergebnisse zurückliefert. Ein Bsp. Güteschlüssel = 2, C_Wert = 0,8 dann kommt als ergebnis Zusatzdamm = 1 raus.

Du willst also folgendes:
• per JFileChooser den Nutzer die Datei(en) auswählen lassen
genau ich würde gerne das der nutzer ein LogFile hochladen kann. Darin enthalten sind die Eingangsparameter. Wenn der User jetzt das LogFile hochgeladen hat und als Regel zusatzdamm ausgewählt hat, soll mein Programm aus diesen LogFile die werte suchen damit die Regelanfrage getätigt werden kann. Im Fall Zusatzdamm halt den C_Wert und den Güteschlüssel.

• diese Datei(en) einlesen und daraus eine Liste generieren, aus der der Nutzer eine/mehrere Elemente (Regeln) wählen kann
In der GUI gibt es ein DropDown Menü da sind die Regeln enthalten, er kann zB dort die Regel zusatzdamm oder Baumann auswählen. danach soll das Programm wie oben vorgehen sich aus den LogFile die Daten rausholen die er für die Regelanfrage braucht.

• diese ausgewählten Elemente darstellen
Die ausgewählten Elemente also bei Zusatzdamm Güteschlüssel und C_Wert soll er in ein neues Text File schreiben. In einen LogFile gibt es 1000 verschiedene Werte von den C_wert usw. Nachdem er dieses File geschrieben hat soll er die Regelanfrage starten.

In welchem Format liegen die Regeln vor? ist das Text, der angezeigt werden soll? Zahlen/Binärdaten, die visualisiert werden sollen? Wie sind die Daten strukturiert (XML, CSV, …)?
Das LogFile ist ein .txt Dokument mit Strings, Int und Double Werten


Vielen Dank für die schnell Antwort
 

Neue Beiträge

Zurück