![]() |
| | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 |
| Gast
Beiträge: n/a
|
Hi, ich habe folgendes Problem: mit folgendem Quelltext möchte ich dem Nutzer ermöglichen aus 10 verschiedenen Bereichen zu wählen, die ich alle jeweils als Textdatei angelegt habe. In diesen Textdateien stehen jeweils Begriffe, die zu den jeweiligen Bereichen passen. Ich möchte nun, dass der Benutzer einen Begriff in das Textfeld eingibt und der Begriff durch das Betätigen des Buttons ans Ende der ausgewählten Textdatei geschrieben wird. Im Moment habe ich es aus Testzwecken noch so programmiert, dass einfach durch die printwriter-Methode println etwas reingeschrieben wird. Das funktioniert auch einwandfrei. Sobald ich aber eine String-Variable für das Textfeld erstelle und diese String-Variable per println in die Textdatei schreiben will dreht das Programm bei Knopf-Druck durch Das war das erste. Mein zweites Problem ist, dass irgendwie beim Programmstart kein Unterpunkt der Combobox aktiviert ist, was zu unsinnigen Ausgaben führt, wenn man den Button drückt. Wieso ist der erste eintrag nicht aktiviert wenn ich z.b. "auswahl.setSelectedIndex(0);" benutze?? Würde mich sehr über Hilfe freuen! Hier der gesamte Code: Code:
import java.io.*;
import java.util.Vector;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class terms extends FensterMitController implements ActionListener
{
String bereiche[]= { "Film und Fernsehen", "Orte", "Sport", "Wissenschaft", "Geschichte",
"Universität", "Literatur", "Lebensmittel", "Umwelt", "Sprichwörter" };
JButton hinzufuegen, neu;
JTextField text;
JComboBox auswahl;
String s, begriff, t, eingabe, textdatei = "";
int zeilen, bereich;
public terms()
{
initialisiereAttribute();
// Fenstergroesse setzen
setSize(640,480);
// und anzeigen
setVisible( true );
}
private void initialisiereAttribute()
{
Container contentPane = getContentPane();
contentPane.setLayout(new FlowLayout());
JComboBox auswahl = new JComboBox();
for ( int i = 0; i < bereiche.length; i++ )
auswahl.addItem( bereiche[i] );
// Problem: Wieso wird es nicht aktiviert?
auswahl.setSelectedItem(bereiche[0]);
auswahl.addItemListener(new auswahlListener());
JTextField text = new JTextField("",30);
JButton hinzufuegen = new JButton("Begriff hinzufuegen");
hinzufuegen.setActionCommand("add");
hinzufuegen.addActionListener(this);
contentPane.add(auswahl);
contentPane.add(text);
contentPane.add(hinzufuegen);
}
class auswahlListener implements ItemListener
{
public void itemStateChanged(ItemEvent e)
{
// Wähle jeweilige Textdatei aus!
JComboBox selectedChoice = (JComboBox)e.getSource();
int zahl = selectedChoice.getSelectedIndex();
switch (zahl)
{
case 0:
textdatei="FilmUndFernsehen.txt";break;
case 1:
textdatei="Orte.txt";break;
case 2:
textdatei="Sport.txt";break;
case 3:
textdatei="Wissenschaft.txt";break;
case 4:
textdatei="Geschichte.txt";break;
case 5:
textdatei="Universität.txt";break;
case 6:
textdatei="Literatur.txt";break;
case 7:
textdatei="Lebensmittel.txt";break;
case 8:
textdatei="Umwelt.txt";break;
case 9:
textdatei="Sprichwörter.txt";break;
}
}
}
// hier findet die Ereignisverarbeitung der Buttons statt
public void actionPerformed(ActionEvent event)
{
String getAC = event.getActionCommand();
if(getAC.equals ("add"))
{
System.out.println("Begriff wurde zum Bereich "+textdatei+" hinzugefügt!");
hinzufuegen();
}
}
public void hinzufuegen()
{
Vector v1 = new Vector();
try
{
BufferedReader f = new BufferedReader(new FileReader(textdatei));
// Zeilen werden eingelesen und im Vektor gespeichert.
while (f.ready())
{
t = f.readLine();
v1.addElement(t);
}
f.close();
}
catch ( IOException e ) { System.out.println( "Fehler beim Lesen der Datei" ); }
try
{
PrintWriter w = new PrintWriter(textdatei);
/*
* Begriff wird hinzugefügt, indem die alten Begriffe erneut geschrieben und
* der neue Begriff hinzugefügt wird.
*/
for (int i = 0; i < v1.size(); i++)
{
w.println(v1.get(i).toString());
}
w.println("Der neue Begriff");
w.close();
}
catch ( IOException e ) { System.out.println( "Fehler beim Lesen der Datei" ); }
}
public static void main (String args[])
{
new terms();
}
}
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | Thema durchsuchen |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Probleme mit Strato / Arcor? | MrNiceGuy | Plauderecke | 15 | 28.12.2006 23:35 |
| Caching mittels dbm-Dateien, Probleme mit dba_popen() | Ben | PHP-Programmierung | 4 | 27.07.2006 13:23 |
| Probleme mit Anhängen | Ben | Archiv | 0 | 16.06.2006 16:13 |
| Layout Probleme | VipViper2000 | Desktop-Applikationen und Grafik | 8 | 13.09.2005 22:35 |
| Probleme und Zeitdruck: Kunden-DB (Vector) | mubbelbubbel82 | Allgemeine Java-Programmierung | 3 | 14.07.2005 23:43 |