Über RadioButton öffnen?

Status
Nicht offen für weitere Antworten.

mobile

Bekanntes Mitglied
hi, habe hier ein kompliziertes Problem. Scheinbar kompliziert :)!

In diesem Fenster hier habe ich JRadioButtons erstellt:

Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*; 

final public class CAbfrage extends JFrame
{
   //Behandlung für das Frame WindowLauscher
    final class CDialog extends WindowAdapter
   {
       final public void windowClosing(WindowEvent e)
      {
         setVisible(false);
      }
   }
   
   //Behandlung den Button Schließen
   final class CClose implements ActionListener
   {
      final public void actionPerformed(ActionEvent e)
      {
       	setVisible(false);
      }
   }
   
   //Behandlung den Button Öffnen
   final class COeffnen implements ActionListener
   {
      final public void actionPerformed(ActionEvent e)
      {
      	setVisible(false);
      }
   }
   
   //Kontruktor legt Schalter und Label an
   CAbfrage(String titel)
   {
      super(titel);   //Fenstertitel
      
      //layout des Fensters
      getContentPane().setLayout(new BorderLayout());
      
      //Panel für die RadioButtons
      JPanel radio = new JPanel();
      JRadioButton april = new JRadioButton("April 2006");
      JRadioButton mai = new JRadioButton("Mai 2006");
      JRadioButton juni = new JRadioButton("Juni 2006");
      JRadioButton juli = new JRadioButton("Juli 2006");
      JRadioButton august = new JRadioButton("August 2006");
      JRadioButton september = new JRadioButton("September 2006");
      JRadioButton oktober = new JRadioButton("Oktober 2006");
      JRadioButton november = new JRadioButton("November 2006");
      JRadioButton dezember = new JRadioButton("Dezember 2006");
      
      radio.add(april);
      radio.add(mai);
      radio.add(juni);
      radio.add(juli);      
      radio.add(august);
      radio.add(september);
      radio.add(oktober);
      radio.add(november);
      radio.add(dezember);
                
      //Panel für Buttons erzeugen
      JPanel button = new JPanel();
      JButton oeffnen = new JButton("Öffnen");
      JButton schließen = new JButton("Schließen");
      
      button.add(oeffnen);
      button.add(schließen);
   
   	  oeffnen.setBackground(Color.white);
   	  schließen.setBackground(Color.white);
   	  
   	  oeffnen.setPreferredSize(new Dimension(90,20));
   	  schließen.setPreferredSize(new Dimension(90,20));
   	  
   	  
   	  //Panels zum Fenster zufügen
      getContentPane().add(radio,"Center");
      getContentPane().add(button,"South");
      
      //Frame bei Listener anmelden
      addWindowListener(new CDialog());
            
      //Listener für Buttons regisrieren
      schließen.addActionListener(new CClose());
      oeffnen.addActionListener(new COeffnen());
   }
   
}

Bitte nicht wieder wegen dem Code meckern :)! Öffenen tue ich das Fenster aus diesem Fenster:

Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*; 


final public class CPuls extends JFrame
{
   //Behandlung für das Frame WindowLauscher
    final class CPulsFenster extends WindowAdapter
   {
       final public void windowClosing(WindowEvent e)
      {
         setVisible(false);
      }
   }
   
   //Behandlung für Button Speichern
   final class CSpeichern implements ActionListener 
   {
        final public void actionPerformed(ActionEvent e) 
        {
            try 
            {
                speichern();
            } 
            catch (IOException ex) 
            {
                ex.printStackTrace();
            }
        }
    } 
	
	//Behandlung den Button Schließen
   final class CSchließen implements ActionListener
   {
      final public void actionPerformed(ActionEvent e)
      {
       	setVisible(false);
      }
   }
   
   	//Behandlung den Button Öffnen
   final class COpen implements ActionListener
   {
      final public void actionPerformed(ActionEvent e)
      {
       	CAbfrage Fenster4 = new CAbfrage("Datei öffnen");
      
      	Fenster4.setSize(350,180);
      	Fenster4.show();
      	Fenster4.setLocation(450,125);
      	
      }
   }
   
      
   //Kontruktor legt Schalter und Label an
   CPuls(String titel)
   {
      super(titel);   //Fenstertitel
      
      //layout des Fensters
      getContentPane().setLayout(new BorderLayout());
            
      //Panel für Überschriften erzeugen
      JPanel oben = new JPanel();
      JLabel zeile = new JLabel("Geben Sie hier ihre Daten über Gewicht und Puls ein");
            
      oben.add(zeile);
      
      zeile.setBackground(Color.white);
      zeile.setForeground(Color.blue);
            
      //Panel für textArea erzeugen
      JPanel mitte = new JPanel();
      text = new JTextArea("Hier geben Sie die Daten ein");
      
      try {
            laden();
          } 
          catch (FileNotFoundException ex1) 
          {
          } 
        catch (IOException ex2) 
        {
            ex2.printStackTrace();
        }
    		 
      
      mitte.add(text);
           
      mitte.setBackground(Color.white);
      
                        
      //Panel für Buttons erzeugen
      JPanel button = new JPanel();
      JButton exit = new JButton("Schließen");
      JButton save = new JButton("Speichern");
      JButton open = new JButton("Öffnen");	
      
      button.add(open);
      button.add(save);
      button.add(exit);
      
      exit.setBackground(Color.white);
      save.setBackground(Color.white);
      open.setBackground(Color.white);
      
      exit.setPreferredSize(new Dimension(90,22));
      open.setPreferredSize(new Dimension(90,22));
      save.setPreferredSize(new Dimension(95,22));
      
      //Panels zum Fenster zufügen
      getContentPane().add(oben,"North");
      getContentPane().add(new JScrollPane(text),"Center"); 
      getContentPane().add(button,"South");
      
      //Frame bei Listener anmelden
      addWindowListener(new CPulsFenster());
            
      //Listener für Buttons regisrieren
      save.addActionListener(new CSpeichern());
      exit.addActionListener(new CSchließen());
      open.addActionListener(new COpen());
}
	private void speichern() throws IOException
		{
        Writer writer = new BufferedWriter(new FileWriter(new File(FILE_NAME)));
        text.write(writer);
        writer.close();
    }
    
    private void laden() throws IOException
    	{
        Reader reader = new BufferedReader(new FileReader(new File(FILE_NAME)));
        text.read(reader,null);
        reader.close();
    	}
    
    private final String FILE_NAME = "april.txt";
    
    private JTextArea text ;
}

Im Moment wird mein Text den ich in die TextArea eingebe ja als april.txt gespeichert. Funktioniert alles super!
So nun kommen ja weitere Monate. Jetzt möchte ich, wenn ich in dem Fenster mit den JRadioButtons z.B Mai auswähle, dass sich in dem Fenster wo das TextArea ist ein leeres TextArea öffnet. Wenn ich dann den Button speichern klicke, soll dies unter mai.txt gespeichert werden.

Versteh ihr wie ich das meine?

Ok, ist vielleicht etwas viel. Bedanke mich trotzdem bei euch für Hilfe!
 

The_S

Top Contributor
timkon hat gesagt.:
Versteh ihr wie ich das meine?

Nö, also ich zumindest nicht. Gewöhne dir bitte an nur den relevanten Code zu posten und dein Problem genauer zu spezifizieren (also z. B. "Was für einen Listener brauche ich für RadioButtons?" "Wie öffne ich ein neues Frame?", ...), dann ist es auch viel einfacher dir zu helfen.
 

mobile

Bekanntes Mitglied
Ok, werde ich mir angewöhnen, aber so habt ihr wenigstens einen Überblick :)!

Also mal kurz gesagt: Ich möchte einen JRadioButton aktivieren bsp: Mai. dann klicke ich auf öffnen und in dem anderen Fenster soll dann der Inhalt der -txt Datei angezeigt werden die von dem RadioButton marjiert wurde.

Leichter verständlich? Hoffentlich :)
 

The_S

Top Contributor
timkon hat gesagt.:
Ok, werde ich mir angewöhnen, aber so habt ihr wenigstens einen Überblick :)!

Überblick schön und gut, aber wenn man das relevante nicht einfach rausfiltern kann, hilft der schönste Überblick nichts ;)

timkon hat gesagt.:
Also mal kurz gesagt: Ich möchte einen JRadioButton aktivieren bsp: Mai. dann klicke ich auf öffnen und in dem anderen Fenster soll dann der Inhalt der -txt Datei angezeigt werden die von dem RadioButton marjiert wurde.

Wobei wir beim Punkt "Die Frage genauer spezifizieren" wären. Hast du Probleme mit

a) (falls der JRadioButton nicht von Hand ausgewählt wird) Den JRadioButton vom Programm aus auswählen
b) Beim Klick das andere Fenster anzeigen
c) Die txt Datei auslesen
d) Die txt Datei anzeigen
e) Feststellen welcher RadioButton ausgewählt ist.

Ich schätze mal es ist entweder b, c oder e. Aber auf gut Glück stell ich hier keine Lösung rein ...
 

mobile

Bekanntes Mitglied
:) Ist das lustig hier :)

Also...

zu a: Wähle ich per Hand aus, also kein Problem
zu b: Wie ich das andere Fenster dann öffne ist eigentlich auch kein Problem
zu c: Die richtige .txt auslesen ist das Problem. Ich möchte ja über den RadioButton mitteilen welche .txt das Programm auslesen soll
zu e: das schließt sich ja dann mit ein. Das Programm muss ja wissen welcher Burron aktiv ist, damit es dann weiß (c) welche .txt es auslesen soll. Richti?? :)
naja d. kommt dann eigentlich auch noch, weil ich dann auch die ausgewählte .txt anzeigen muss.
Verständlich? Wir nähern uns langsam :)!
 

The_S

Top Contributor
OK, jetzt kann ich dir helfen. ;) :)

1. Am besten addest du deiner Klasse mit den RadioButtons einen ItemListener, welcher sich den aktuell ausgewählten RadioButton merkt (am Besten in ein File die zugehörige txt schreiben und bei einer anderen Selektierung überschreiben).

2. Dieses File übergibst du dann in einer setter Methode (oder Konstruktor je nachdem wie deine Klassen aufgebaut sind) deiner anderen Klasse, welche dann einfach nur einen Reader mit dem File zu erzeugen braucht.

3. Wenn du die Datei ausgelesen hast erzeugst du z. B. ein JTextArea irgendwo wo es dir beliebt ( ;) ), addest diesem den eingelesenen Text und zeigst es an.

Soviel zur Theorie, Praxis ist jetzt dein Part :)
 

mobile

Bekanntes Mitglied
danke für die Hilfe.

Deswegen habe ich den kompletten code gepostet. Verstehe zwar was du mir sagst (klingt logisch :)) aber ich weiß nicht so richtig wo ich dies alles machen soll, sorry! :(

Können wir das mal schritt für schritt durchgehen? Wo erstelle ich den ItemListener? Also in welcher Klasse ist mir klar, aber wo da genau nicht so ganz und auch nicht wie er dann die Auswahl von den Buttons erhält.

Code:
class CMeinItemAdapter implements ItemListener
   {
   	public void itemStateChanged(ItemEvent e)
   	{
   		//was soll hier rein?
   	}
   }
Wie gehts weiter?

Mir ist da grade was eingefallen. Könnte ich nicht auch ein TextField erstellen und in dieses die zu öffnende Datei schreiben?
 

The_S

Top Contributor
Also um heute alles Schritt für Schritt mit dir durchzugehen habe ich keine Zeit, aber wir können ja mal anfangen (evtl. findet sich ja auch noch jemand anderes, ist ja net hochkompliziert ;) ).

Eins vorneweg ich werde nichts in deiner Klasse schreiben, da ich mich mit deinen Programmierstiel nicht anfreunden kann, sry!

Hier eine Beispielklasse für den ItemListener

Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class ItemListenerDemo extends JFrame implements ItemListener {
	
	private String auswahl = null;
	private JPanel pane = null;
	private JRadioButton januar = null;
	private JRadioButton februar = null;
	private JRadioButton maerz = null;
	private ButtonGroup group = null;
	
	public ItemListenerDemo() {
		
		pane = new JPanel();
		januar = new JRadioButton("Januar", true);
		februar = new JRadioButton("Februar");
		maerz = new JRadioButton("März");
		group = new ButtonGroup();
		pane.add(januar);
		pane.add(februar);
		pane.add(maerz);
		group.add(januar);
		group.add(februar);
		group.add(maerz);
		januar.addItemListener(this);
		februar.addItemListener(this);
		maerz.addItemListener(this);
		setContentPane(pane);
		pack();
		setVisible(true);
	}
	
	// Das passiert wenn ein anderer JRadioButton ausgewählt wird
	
	public void itemStateChanged(ItemEvent ite) {
		
		Object source = ite.getSource(); // speichere den ausgewählten JRadioButton in ein Objekt
		if (ite.getStateChange() == ItemEvent.SELECTED) { // nur ausführen wenn der Button selektiert und nicht wenn er abgewählt wird
			if (source == januar) {
				auswahl = "Januar.txt";
			}
			else if (source == februar) {
				auswahl = "Februar.txt";
			}
			else if (source == maerz) {
				auswahl = "März.txt";
			}
			System.out.println("Folgende Datei wird momentan geladen: " + auswahl);
		}
	}
	
	public static void main(String[] args) {
		
		new ItemListenerDemo();
	}
}
 

mobile

Bekanntes Mitglied
Also ich habe das jetzt eingebaut und nach meinen dingen angepasst.

jetzt habe ich da ja ne main methode drin. die habe ich doch schon in meinem Hauptfenster. Geht das?

Bekomme jetzt immer die FEhlermeldung, invalid method declaration; return type required
CAbfrage(String titel)

Was mache ich falsch?
 

The_S

Top Contributor
Du bentötigst pro Programm nur eine main. Wenn du meine Klasse oben aus einer anderen Klasse aus aufrufst kannste dir die main natürlich schenken.

Wenn Fehler kommen immer zeigen WO sie auftauchen. Ich schätze jetzt mal so frei Schnauze dass du deine Klasse unbenannt hast und dabei den Konstruktor vergessen hast mit umzubennen!?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
_user_q Über installDist exportiertes Programm wirft "Unsupported JavaFX configuration" AWT, Swing, JavaFX & SWT 0
K Event Handling Über JMenuBar die diversen Panels anzeigen AWT, Swing, JavaFX & SWT 10
Nabbit Über JList kein JPopupMenu AWT, Swing, JavaFX & SWT 2
M Über eine JMenuBar überprüfen ob ein JCheckBoxMenuItem selectiert ist. AWT, Swing, JavaFX & SWT 4
R ImageIcon - Über Socket AWT, Swing, JavaFX & SWT 1
T Über mehrere Panel zeichnen AWT, Swing, JavaFX & SWT 2
B Über SWT Button Thread beenden AWT, Swing, JavaFX & SWT 2
E Über CellEditorListener an die JTable gelangen AWT, Swing, JavaFX & SWT 4
C AWT Über Pulldownmenü neue Javadatei öffnen AWT, Swing, JavaFX & SWT 7
K Über die Menübar das JPanel ändern AWT, Swing, JavaFX & SWT 2
V Bei JLabel das Icon Über den Text machen AWT, Swing, JavaFX & SWT 2
G Über ein Video zeichnen AWT, Swing, JavaFX & SWT 3
P Über Actionlistener Datenbankzugriff AWT, Swing, JavaFX & SWT 3
K JavaFX RadioButton.setText() AWT, Swing, JavaFX & SWT 11
A Zufallsgenerator starten bei Klick auf Radiobutton AWT, Swing, JavaFX & SWT 3
V RadioButton aktivieren/deaktivieren; Zustand abfragen und wechseln AWT, Swing, JavaFX & SWT 2
J RadioButton-Gruppe in Kombination mit einem Button AWT, Swing, JavaFX & SWT 6
N gewünschte ActionListener bei RadioButton mit isSelected geht nicht AWT, Swing, JavaFX & SWT 2
R JMenuItems mit Radiobutton/Haken AWT, Swing, JavaFX & SWT 2
U Radiobutton als nicht angeklickt makieren AWT, Swing, JavaFX & SWT 2
N JTable RadioButton statt Checkbox AWT, Swing, JavaFX & SWT 4
G Radiobutton checked ? AWT, Swing, JavaFX & SWT 4
G RadioButton AWT, Swing, JavaFX & SWT 1
N SWT: Frage zu Radiobutton setSelection() AWT, Swing, JavaFX & SWT 2
D RadioButton abstand entfernen AWT, Swing, JavaFX & SWT 2
C RadioButton nicht änderbar stellen, ohne das Sie grau wird AWT, Swing, JavaFX & SWT 9
D RadioButton in einer Tabelle einfügen AWT, Swing, JavaFX & SWT 3
A zurücksetzen Radiobutton AWT, Swing, JavaFX & SWT 3
C Radiobutton-Bezeichnung mit Eingabefeld AWT, Swing, JavaFX & SWT 2
I Screen nur 1x öffnen können AWT, Swing, JavaFX & SWT 17
OZAN86 einfaches Fenster öffnen scheitert AWT, Swing, JavaFX & SWT 18
W Zweites/neues Fenster durch Button öffnen AWT, Swing, JavaFX & SWT 6
MiMa JavaFX Fenster in JavaFX öffnen Schliessen (Initialisierung) AWT, Swing, JavaFX & SWT 20
OSchriever Anwendung aus SystemTray öffnen AWT, Swing, JavaFX & SWT 29
A 2 Stages gleichzeitig öffnen AWT, Swing, JavaFX & SWT 2
X Neues Fenster mit Button öffnen und bearbeiten AWT, Swing, JavaFX & SWT 4
platofan23 JAVAFX zweites Fenster öffnen AWT, Swing, JavaFX & SWT 2
A Ein browser Fenter prametrisiert öffnen AWT, Swing, JavaFX & SWT 15
L Java- UI zweites Fenster aus einer anderen Klasse öffnen durch ButtonClick AWT, Swing, JavaFX & SWT 4
J JavaFX Kamera im Programm öffnen AWT, Swing, JavaFX & SWT 6
D Mit Jmenu neue JFrame öffnen AWT, Swing, JavaFX & SWT 2
D Swing Neues (3.) Fenster öffnen AWT, Swing, JavaFX & SWT 2
S Tastatur frame nur nur 1 mal öffnen AWT, Swing, JavaFX & SWT 1
S Mit JButton neues Fester öffnen und das alte schließen AWT, Swing, JavaFX & SWT 3
T Swing Java-Frame bei Programmstart NICHT im Vordergrund öffnen AWT, Swing, JavaFX & SWT 2
L Swing JButton soll link öffnen AWT, Swing, JavaFX & SWT 1
N Swing Sorry nicht mal ein Fenster öffnen... AWT, Swing, JavaFX & SWT 19
G Swing JFrame öffnen bei Pidgin Benachrichtigung AWT, Swing, JavaFX & SWT 5
P JavaFX Project im Browser öffnen AWT, Swing, JavaFX & SWT 4
O Swing JDialog öffnen und dann warten bis er geschlossen wurde AWT, Swing, JavaFX & SWT 2
P Programm durch Dateiaufruf starten und Datei öffnen AWT, Swing, JavaFX & SWT 2
I JTable: Doppelklick auf Table soll neues Fenster öffnen und Daten aus JTable anzeigen AWT, Swing, JavaFX & SWT 4
D Dateien öffnen AWT, Swing, JavaFX & SWT 16
S Swing txt Dateien öffnen mit JFilleChooser AWT, Swing, JavaFX & SWT 4
O Neuen JFrame öffnen und alten schließen AWT, Swing, JavaFX & SWT 7
D Swing DICOM Files öffnen, wie? AWT, Swing, JavaFX & SWT 5
T SWT SWTBot Test: Dialog soll sich öffnen,wenn button gedrückt AWT, Swing, JavaFX & SWT 3
G Datei öffnen Dialog modifizieren AWT, Swing, JavaFX & SWT 13
J JTable Zeile anklicken und neues Frame öffnen AWT, Swing, JavaFX & SWT 4
B VLC Player in JavaFX öffnen AWT, Swing, JavaFX & SWT 7
X Popup Menü nur bei besonderem Fall öffnen AWT, Swing, JavaFX & SWT 3
F JavaFX KeyListener zum Fenster öffnen/schließen AWT, Swing, JavaFX & SWT 9
VfL_Freak AWT Browser öffnen und schließen via java.awt.Desktop AWT, Swing, JavaFX & SWT 4
M JavaFX WebView lässt sich nur einmal öffnen AWT, Swing, JavaFX & SWT 2
achillesat SWT Browser öffnen durch Button click AWT, Swing, JavaFX & SWT 5
P Event Handling Listener beim öffnen von einem JPopupMenu AWT, Swing, JavaFX & SWT 3
M Datei in jar öffnen AWT, Swing, JavaFX & SWT 11
M Swing Warum öffnen sich beim Zeichnen mit Swing plötzlich zwei Fenster? AWT, Swing, JavaFX & SWT 5
P versch. JPanel Klassen über Menü öffnen AWT, Swing, JavaFX & SWT 12
J Swing Fenster lässt sich nach Schließung nicht wieder öffnen AWT, Swing, JavaFX & SWT 4
S JFrame sicher öffnen AWT, Swing, JavaFX & SWT 9
D Neues Frame öffnen - und dazu altes schließen AWT, Swing, JavaFX & SWT 5
N Applet JButton soll html Datei aus einem Ordner öffnen AWT, Swing, JavaFX & SWT 2
E Fenster schließen und ein anderes öffnen AWT, Swing, JavaFX & SWT 9
R Swing Mit Swing eine throws Exception Methode öffnen AWT, Swing, JavaFX & SWT 3
N Swing FileFilter lässt JTree sich nicht öffnen AWT, Swing, JavaFX & SWT 2
J Swing Frame öffnen aus Frame mit JButton AWT, Swing, JavaFX & SWT 2
T SWT:Datei speichern / öffnen AWT, Swing, JavaFX & SWT 6
T speichern funktioniert,aber öffnen nicht AWT, Swing, JavaFX & SWT 2
J Mit Button neues Fenster öffnen AWT, Swing, JavaFX & SWT 17
J SWT Dialog in Dialog automatisch öffnen AWT, Swing, JavaFX & SWT 19
J Programm nur einmal öffnen AWT, Swing, JavaFX & SWT 3
J jme neues projekt öffnen AWT, Swing, JavaFX & SWT 4
L SWT Actionlistener Combobox öffnen AWT, Swing, JavaFX & SWT 4
X Swing JTable stets mit gleichem Inhalt öffnen AWT, Swing, JavaFX & SWT 3
E Applet Neuen Tab aus Applet öffnen AWT, Swing, JavaFX & SWT 3
C jComboBox in jTable ohne Klick öffnen AWT, Swing, JavaFX & SWT 4
C JComboBox Popup nicht öffnen AWT, Swing, JavaFX & SWT 4
T neues Fenster durch Button öffnen funktioniert nicht!! AWT, Swing, JavaFX & SWT 2
H Applet JApplet soll neues Tab im Browser öffnen AWT, Swing, JavaFX & SWT 2
J Fehler beim Gif Datei öffnen AWT, Swing, JavaFX & SWT 2
H Applet - Hilfedateien im Browser öffnen / eine Webseite laden AWT, Swing, JavaFX & SWT 6
N Swing außerhalb des Hauptframe Komponente/Frame öffnen AWT, Swing, JavaFX & SWT 2
O Login Dialog zweimal öffnen AWT, Swing, JavaFX & SWT 2
N Swing TreePath Datei öffnen AWT, Swing, JavaFX & SWT 7
B Datei öffnen Dialog AWT, Swing, JavaFX & SWT 9
W jar Datei öffnen AWT, Swing, JavaFX & SWT 4
P Firefox öffnen GUI AWT, Swing, JavaFX & SWT 8
Y JFrame in JFrame öffnen AWT, Swing, JavaFX & SWT 26
T Ordner öffnen nach Klick auf einen Button AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen


Oben