ausgeben in jcombobox

yasukatakaya

Mitglied
Hallo,
ich habe folgende Funktion geschrieben, die auch perfekt funktioniert, doch das Problem ist, dass die jComboBox einen java.lang.Sting erwartet und nicht java.lang.String[], doch wie soll ich mehrere String, die ich aus einer Datei splitte ausgeben?

Hier ist mein Code:
HTML:
  String[] alleTestschritte() throws FileNotFoundException, IOException
    {
        String alleTests[];
       
            RandomAccessFile f = new RandomAccessFile( "C:/Documents and Settings/pdbasand/Desktop/Ausgabe.txt", "r" );
            //System.out.println( f.readLine() );
            
            String input = f.readLine(); //die erste zeile einlesen
           
            Pattern p = Pattern.compile("STROM-HS(.*)KORR_LAND_RLR",Pattern.CASE_INSENSITIVE);  
            Matcher m = p.matcher(input);
            if (m.find())
            {
                String gefunden = m.group(0);
                String[] results = gefunden.split("\\|");
            
                for (int i = 0; i < results.length; i++)
                {
                    alleTests[i] = results[i];
                }
            }
        return alleTests;
    }

in dem Arras alleTests, der auch an jComboBox übertragen werden muss, stehen jetzt viele Strings!

Gruss
 
Ich weiß zwar nicht wieso du für so eine Kleinigkeit gleich einen zweiten Thread in diesem Forum auf machst, obwohl dein Beitrag von gestern noch nicht mal geschlossen ist aber in der Beziehung soll dich lieber ein Moderator oder Forenuser zurechtweisen der schon länger bei Tutorials angemeldet ist.
Was ich hingegen nicht verstehe ist wieso du nicht ein bisschen nachdenkst oder zumindest nach Beiträgen schaust in denen die gleiche Frage schon mal gestellt wurde.

Du musst doch bloß über das Stringarray iterieren und einen String anlegen, dem du nach und nach alle Strings anhängst...
 
Ja tut mir leid, aber dieses passt nicht ganz mit dem anderen, der andere Thread hat sich schon erledigt!

Kannst du mir deinen Vorschlag besser erklären?
Gruss
 
Bitte kennzeichne den alten Thread den du geschrieben hast erst einmal als erledigt und lies dann weiter!

Java:
import java.io.RandomAccessFile;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class maintest {
	
	public static String alleTestschritte(){
       
		String alleTests = "";
        
		try {
	        RandomAccessFile f;
			f = new RandomAccessFile("C:/Documents and Settings/pdbasand/Desktop/Ausgabe.txt", "r" );

        
	        String input = f.readLine();
	       
	        Pattern p = Pattern.compile("STROM-HS(.*)KORR_LAND_RLR",Pattern.CASE_INSENSITIVE);  
	        Matcher m = p.matcher(input);
	        if (m.find())
	        {
                String gefunden = m.group(0);
                String[] results = gefunden.split("\\|");
	        
	            for (int i = 0; i < results.length; i++)
	            {
	                alleTests = alleTests + " " + results[i];
	            }
	        }   
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
        return alleTests;	
	}
	
	public static void main(String[] args){
		String result = alleTestschritte();
		System.out.print(result);
	}
}

Das ganze ist jetzt nicht sehr schön oder sicher geschrieben, aber es müsste funktionieren.
Leider kann ich das ganze ohne .txt file bzw. dessen Inhalt nicht ausführen...
 
Hi,
danke für deine antwort, das problem ist jetzt folgendes und zwar sind die gefundenen Strings alle in eine Reihe bei jComboBox zu sehen (z.B. STROM-HS STROM-BS ON-KOMM SW-HS), ich wollte aber, dass die Sachen nacheinander ausgegeben z.B.so
HTML:
STROM-HS
STROM-BS
ON-KOMM
SW-HS

werden und man sich dann jeweilige anklicken kann(mit jComboBox), was man benötigt, verstehst du was ich meine?!

Hast du dafür vielleicht einen Vorschlag?
 
Hmm, das wird wohl daran liegen, dass Du jetzt einen langen String hast, in dem alles drin steht und nur genau diesen einen String der ComboBox zuweist.... Im Prinzip mußt Du jedes Element, welches in der ComboBox auftauchen soll, einzeln hinzufügen.
 
ja aber ich verstehe immer noch nicht, wie ich die gefunden sachen(also die Strings), die ich mit der ober erwähnten methode finde, dort einbinde?

RATLOSIGKEIT!? :confused::confused::confused::confused:
 
Java:
import java.awt.BorderLayout;

import javax.swing.BorderFactory;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class startPanel extends JPanel {
	/*
	 * Hier befüllst du dein String[] mit den Werten die du aus der anderen Klasse bekommst
	 */
    String[] deinedaten = deineklasse.alleTestschritte(); // Methoder die dir String[] zurückgibt
   
    public startPanel() {
        super(new BorderLayout());

        //Create the combo box.
        JComboBox petList = new JComboBox();
        for(int i = 0; i < deinedaten.length; i++){
        	petList.addItem(deinedaten[i]);
        }

        add(petList, BorderLayout.PAGE_START);
        setBorder(BorderFactory.createEmptyBorder(20,20,20,20));
    }

    private static void createAndShowGUI() {
        //Create and set up the window.
        JFrame frame = new JFrame("DeinText");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //Create and set up the content pane.
        JComponent newContentPane = new startPanel();
        newContentPane.setOpaque(true); //content panes must be opaque
        frame.setContentPane(newContentPane);

        //Display the window.
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        //Schedule a job for the event-dispatching thread:
        //creating and showing this application's GUI.
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }
}
 
Zurück