JDialog / JMenue Problem

Status
Nicht offen für weitere Antworten.
P

Para

Gast
Moin,

ich baue ein JFrame und packe da eine JMenuBar rein. Über diese Bar unter Datei -> Öffnen (eigentlich egal wo) mache ich ein JDialog auf mit nem JButton der wenn gedrückt den dialog mit Dispose() wieder schließt. Das funzt auch nur dass ich beim schließen über den Button bzw über das kleine Kreuz oben rechts kommt der Fehler:

java.lang.IllegalArgumentException: adding a window to a container
at java.awt.Container.addImpl(Container.java:616)
at java.awt.Container.add(Container.java:307)
........

Ein weiteres Problem ist, dass in dem Dialog ein Name eingegeben werden soll. Wenns den schon gibt soll ein weiterer Dialog erscheinen mit "Achtung Fehler" + OK Button. Das hab ich mit einem weiteren JDialog gemacht der als Parent den Dialog oben hat. Wenn ich den Aktuellen Fehlerdialog zumache geht auch der darunter liegende erste Dialog zu, soll er aber nicht. Hat wer nen Tipp?

CU Para.

P.S Quellcode hab ich nicht gepostet, da das ziemlich lang ist und ich hoffe, dass ich was bekanntes falsch mache :)). Falls der Quellcode nötig sein sollte hol ich das aber gerne nach.
 
G

Guest

Gast
verdammt dann komme ich wohl doch nicht ohne quellcode aus. ich hab den ein wenig auf das wesentliche zusammen gekürzt.

Gui ist die Hauptklasse mit der main() die den Frame aufbaut in dem alles ablaufen soll
turnieranlegen baut einen dialog zum eintippern von daten
menu baut das menu und fügt es ein.

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

public class gui 
{

	public static void main(String[] args) 
	{
		JFrame  frame = new  JFrame ();
		JPanel treepanel = new JPanel();
		JPanel contentpanel= new JPanel();
		JMenuBar menubar = new JMenuBar();
	
		
		JSplitPane sp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
		frame.getContentPane().setLayout(new BorderLayout());
		
	
		contentpanel.setLayout(new GridLayout(1,1));
		contentpanel.add(new JButton("1") ); //mach mal was rein damit er nicht so leer ist :-)
		
		//die Methode maketree is hier nicht gepostet... füllt das Panel oh wunder mit nem Tree
		tree g = new tree();
		g.maketree(treepanel);
		treepanel.setMinimumSize(new Dimension (100,200));
		
		//menu in den frame packen
		menu m = new menu();
		m.makemenu(menubar, frame);
		frame.setJMenuBar(menubar);		
		
		//splitpane hinzufügen
		sp.setContinuousLayout(true);
		sp.setLeftComponent(treepanel);
		sp.setRightComponent(contentpanel);
		frame.getContentPane().add(sp,BorderLayout.CENTER);
		
		frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
		frame.setSize(800,600);
		frame.setLocation(200,150);
		frame.setVisible( true );
	}
}



Code:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;


import javax.swing.*;



public class turnieranlegen implements ActionListener
{
	JDialog anlegen, gibbetschon;
	JLabel text	 			= new JLabel("Hier Tippert man den Turniernamen rein:");
	JTextField turniername 	= new JTextField();
	JButton ok 				= new JButton("OK");
	JButton abbrechen 		= new JButton("Abbrechen");
	JButton teilnehmer 		= new JButton("Teilnehmerliste");
    
    public  turnieranlegen( JFrame  mainframe)
    {
		anlegen = new JDialog();
		anlegen.getContentPane().setLayout(null);
    	
    	teilnehmer.setToolTipText("Hier gehts zum Teilnehmerliste anlegen");
    	ok.addActionListener(this);
    	abbrechen.addActionListener(this);
    	teilnehmer.addActionListener(this);
    	    	
    	text.setBounds(40, 10, 230, 20);
		turniername.setBounds(40, 30, 230, 20);
		ok.setBounds(40, 60, 100, 20);
		abbrechen.setBounds(170, 60, 100, 20);
		teilnehmer.setBounds(40, 90, 230, 20);
		
    	anlegen.getContentPane().add(text);
		anlegen.getContentPane().add(turniername);
		anlegen.getContentPane().add(ok );
		anlegen.getContentPane().add(abbrechen );
		anlegen.getContentPane().add(teilnehmer);
		
		anlegen.setSize(310,150);
		anlegen.setLocation(300,250);
    	anlegen.setResizable(false);
    	anlegen.setModal(true);
       	anlegen.setVisible(true);
    	
    	mainframe.getContentPane().add(anlegen);
    	
    	
    	    	
    } 
     
	public void actionPerformed(ActionEvent event)
	{
		String cmd = event.getActionCommand();
		if (cmd.equals("OK"))
		{
			//gucken ob es den namen gibt
			String name = turniername.getText();
			File speicher = new File("Speicher");
					
			File verznamen[] = speicher.listFiles();
			int i;
			for(i = 0;i<verznamen.length;i++)
			{
				
				if (verznamen[i].isDirectory())
				{
					String verz = verznamen[i].getName();
					if (verz.equals(name))
					{
						//Name gibt es schon
						JOptionPane.showMessageDialog(anlegen,"Den Namen gibbet schon, also nimm nen anderen!");
					}
				}
			}
							
			System.out.println("sind da");
			anlegen.dispose();
		}
		if (cmd.equals("Abbrechen"))
		{
			
		}
		
		if (cmd.equals("Teilnehmerliste"))
		{
			
		}
	}
}

Code:
import java.awt.GridLayout;


import javax.swing.*;
import javax.swing.tree.*;



public class tree  
{
  public void maketree(JPanel panel) 
  {
	//JFrame frame = new JFrame();
	
    
	DefaultMutableTreeNode root = new DefaultMutableTreeNode( "Fechtplaner" );
	    
	DefaultMutableTreeNode Hasen = new DefaultMutableTreeNode( "3 Hasen");
	DefaultMutableTreeNode Nikolaus = new DefaultMutableTreeNode( "Nikolaus");	
	
	
	root.add( Hasen );
	root.add( Nikolaus );
	
	DefaultMutableTreeNode Florett1 = new DefaultMutableTreeNode( "Florett");
	DefaultMutableTreeNode Degen1 = new DefaultMutableTreeNode( "Degen");
	Hasen.add(Florett1);
	Hasen.add(Degen1);	
	
	DefaultMutableTreeNode Mann1 = new DefaultMutableTreeNode( "männlich");
	DefaultMutableTreeNode Fau1  = new DefaultMutableTreeNode( "weiblich");
	DefaultMutableTreeNode Mann2 = new DefaultMutableTreeNode( "männlich");
	DefaultMutableTreeNode Fau2  = new DefaultMutableTreeNode( "weiblich");
	
	Florett1.add(Mann1);
	Florett1.add(Fau1);	
	Degen1.add(Mann2);
	Degen1.add(Fau2);
	
	DefaultMutableTreeNode jg801 = new DefaultMutableTreeNode( "80-82 Vorrunde1");
	DefaultMutableTreeNode jg802 = new DefaultMutableTreeNode( "80-82 Vorrunde2");
	DefaultMutableTreeNode jg803 = new DefaultMutableTreeNode( "80-82 Vorrunde3");

	DefaultMutableTreeNode jg831 = new DefaultMutableTreeNode( "83-83 Vorrunde");
	
	Mann1.add(jg831);
	Mann1.add(jg801);
	Mann1.add(jg802);
	Mann1.add(jg803);
	

	JTree tree = new JTree(root);
	
	JScrollPane scrollTree = new JScrollPane( tree );
    
	//panel.setLayout(new AbsoluteLayout());
	panel.setLayout(new GridLayout(1,1) );
	//panel.add(scrollTree, new AbsoluteConstraints(1, 1, 199, 599));
	panel.add(scrollTree);
 }

  
}


Ich hoffe es hilft :)

Das mit dem JOptionPane is ja cool, hab ich direkt mal eingebaut, aber mit drücken des OK geht dummerweise auch der JDialog wieder zu....
 
R

Roar

Gast
Code:
mainframe.getContentPane().add(anlegen);
geht nicht. ich weiß zwar nicht was mainframe ist, aber du kanns tden JDialog nicht da hinzufügen
 
P

Para

Gast
Hm das is ja nett aber wieso geht das nicht? Ich meine es wir Kompeliert und laufen tut das auch nur beim zumachen kommt es zu dieser oben beschriebenen Auswirkung.

mainframe is der frame der in der main() angelegt wird und an die methode tunieranlegen übergeben.

Ähm wenn das nicht so geht, wie kann ich denn dann den JDialog dem mainframe sonst zufügen?

CU & THX Para
 
R

Roar

Gast
wieso willst du den dialog überhaupt dem fenster hinzufügen?? was soll das bringen? ein dialog ist im grunde selbst ein fenster, und fenster kannst du keinem fenster hinzufügen. um einen dialog anzuzeigen musst di ihn mit setVisible(); sichtbar machen. das zum frame adden bringt überhaupt nix. der dialgo hat auch gar nix mit dem frame zu tun, du must halt nur den owner des dialogs festlegen. das machst du dann aber im konstruktor des dialogs, hat aber nix mit add() doer so zu tun
 
P

Para

Gast
Verdammt, könntest recht haben, ich habs mal rauskommentiert und es geht subbi :)
(also ohne diese exeption)

Bleibt das problem, dass ich habe, wenn dieser Hinweis- JOptionPane() kommt und ich den mit OK wieder zu mache geht auch der JDialog zu. Is das eine von SUN gegebene unumgägnlichte Tatsache oder kann man das irgendwie verhindern?

Ich hab das erstmal so gemacht, dass ich nach dem Aufruf der JOptionpane wieder den Dialog aufrufe, das geht soweit, is meiner Meinug nach aber etwas unschön.

CU Para
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
E JDialog mit count down timer AWT, Swing, JavaFX & SWT 1
H JDialog in Größe ändern - Resize-Cursor bleibt betreten der Komponente AWT, Swing, JavaFX & SWT 1
A ViewController (IFrame) > Jdialog > Model AWT, Swing, JavaFX & SWT 1
J Ablaufsteuerung/Anleitung machen mit JDialog und einer Zustandsmaschine AWT, Swing, JavaFX & SWT 1
L Swing JDialog ton beim klicken ausstellen AWT, Swing, JavaFX & SWT 1
L JDialog hat manchmal keinen Inhalt AWT, Swing, JavaFX & SWT 2
Drachenbauer Hauptfenster erhält schmale Streifen rechts unt unten, wenn ich einen JDialog hinzufüge. AWT, Swing, JavaFX & SWT 19
it_is_all Warum wird die JTable im JDialog nicht angezeigt? AWT, Swing, JavaFX & SWT 1
B Eingaben im JDialog abwarten AWT, Swing, JavaFX & SWT 4
S Swing JDialog mit KeyEvent als Rückgabe AWT, Swing, JavaFX & SWT 1
O Swing JDialog öffnen und dann warten bis er geschlossen wurde AWT, Swing, JavaFX & SWT 2
stylegangsta JDialog bestimmte Zeilen kursiv AWT, Swing, JavaFX & SWT 20
M LayoutManager Modalen JDialog ein Layout zuweisen AWT, Swing, JavaFX & SWT 3
Bluedaishi JDialog modal und JTextArea AWT, Swing, JavaFX & SWT 4
L KeyListener für JDialog AWT, Swing, JavaFX & SWT 7
T Event Handling JDialog schließen, sobald ein neuer erzeugt wird AWT, Swing, JavaFX & SWT 3
D jButton auf von jFrame erzeugtem jDialog AWT, Swing, JavaFX & SWT 16
D Button auf geöffnetem JDialog AWT, Swing, JavaFX & SWT 5
N Definitionen JDialog AWT, Swing, JavaFX & SWT 7
L JDialog - Event wenn Parent größe ändert AWT, Swing, JavaFX & SWT 2
Joew0815 JDialog repaint() funktioniert nicht wie gewünscht. AWT, Swing, JavaFX & SWT 2
D Swing Schließen von JDialog soll auch JFrame schließen. AWT, Swing, JavaFX & SWT 4
N Swing Fragen zu non-modal JDialog AWT, Swing, JavaFX & SWT 1
F Swing JDialog schließen - WindowListener bekommt dispose nicht mit AWT, Swing, JavaFX & SWT 0
N JDialog als Progress-Anzeige AWT, Swing, JavaFX & SWT 6
M JDialog statt JFrame AWT, Swing, JavaFX & SWT 22
I focus an ein jdialog geben AWT, Swing, JavaFX & SWT 3
3 JDialog über einem Vollbildfenster anzeigen AWT, Swing, JavaFX & SWT 5
M JDialog soll JFrame "blockieren" AWT, Swing, JavaFX & SWT 2
K JDialog zeigt Components nicht an AWT, Swing, JavaFX & SWT 3
S Jframe aus JDialog starten AWT, Swing, JavaFX & SWT 4
M JDialog übergibt eingaben nicht an aufrufende klasse AWT, Swing, JavaFX & SWT 15
S Assistent im JDialog AWT, Swing, JavaFX & SWT 7
H Swing JDialog cannot be resolved as a typ AWT, Swing, JavaFX & SWT 12
C Swing JDialog "flutet" den Arbeitsspeicher AWT, Swing, JavaFX & SWT 9
S Swing Eigenen JDialog mit Rückgabewert AWT, Swing, JavaFX & SWT 3
C Swing JDialog Ladebildschirm wird nicht angezeit AWT, Swing, JavaFX & SWT 5
Jagson Mit JMenu auf jDialog zurück? Wie? AWT, Swing, JavaFX & SWT 8
A JDialog (modal) blockiert alle Fenster! AWT, Swing, JavaFX & SWT 2
Jagson Swing Von JDialog zu anderem JDialog wechseln AWT, Swing, JavaFX & SWT 2
S JDialog direkt über dem MainFrame aufpoppen lassen AWT, Swing, JavaFX & SWT 2
A Swing JDialog KeyBindings und Textfelder AWT, Swing, JavaFX & SWT 5
D Daten von JDialog an JTable in JFrame übergeben AWT, Swing, JavaFX & SWT 7
D JDialog: immer nur einer gleichzeitig AWT, Swing, JavaFX & SWT 4
S JDialog per Button schließen AWT, Swing, JavaFX & SWT 2
B Swing JDialog modal, aber trotzdem Frame auswählbar AWT, Swing, JavaFX & SWT 2
D JDialog alwaysOnTop, aber nur innerhalb der Applikation AWT, Swing, JavaFX & SWT 3
J Swing JDialog blokiert mehrere JFrames - soll aber nur den aufrufenden blockieren AWT, Swing, JavaFX & SWT 4
S JDialog über Applet AWT, Swing, JavaFX & SWT 3
N Swing Klasse erbt von JDialog - Problem mit innerer ActionListener-Klasse AWT, Swing, JavaFX & SWT 6
J Swing JDialog gleichzeitig mit JFrame anzeigen AWT, Swing, JavaFX & SWT 8
S Probleme jDialog einfügen AWT, Swing, JavaFX & SWT 4
qwerqer Swing JDialog Darstellungsprobleme - Dialog lässt sich nicht schließen AWT, Swing, JavaFX & SWT 3
S Schrift ändern in JDialog AWT, Swing, JavaFX & SWT 3
S Problem mit JDialog AWT, Swing, JavaFX & SWT 3
D Elternfenster vom JDialog aktualisieren oder nicht ? AWT, Swing, JavaFX & SWT 7
hdi Swing Genaue Funktionsweise von modalem JDialog? AWT, Swing, JavaFX & SWT 11
U JDialog ohne Taskleiste AWT, Swing, JavaFX & SWT 7
S Programm pausieren während JDialog offen ist AWT, Swing, JavaFX & SWT 2
X JEditorPane Größe in JDialog automatisch anpassen AWT, Swing, JavaFX & SWT 2
Ollek JDialog Koponenten neu anordnen AWT, Swing, JavaFX & SWT 3
A JDialog AWT, Swing, JavaFX & SWT 10
Dit_ SwingUtilities.invokeLater und Modaler JDialog AWT, Swing, JavaFX & SWT 11
A Frage zu JDialog AWT, Swing, JavaFX & SWT 3
A JDialog ausdrucken AWT, Swing, JavaFX & SWT 7
aze JDialog mit runden ecken AWT, Swing, JavaFX & SWT 8
Dit_ JDialog nur horizontal vergrößern AWT, Swing, JavaFX & SWT 3
C Swing JProgressBar in JDialog wird nicht angezeigt AWT, Swing, JavaFX & SWT 6
M Swing Vererbung, Probleme mit JDialog AWT, Swing, JavaFX & SWT 12
H JDialog, Modal - Klassenübergreifend => Problem AWT, Swing, JavaFX & SWT 5
S Swing Bild (Gif) in Bitte warten JDialog AWT, Swing, JavaFX & SWT 6
U JFrame minimiert nach JDialog, JOptionPane AWT, Swing, JavaFX & SWT 3
K Swing JDialog aus Frame ausrufen AWT, Swing, JavaFX & SWT 2
B JDialog über JFileChooser anzeigen AWT, Swing, JavaFX & SWT 6
B JDialog AWT, Swing, JavaFX & SWT 6
J Swing Probmel mit JDialog (Modal/FocusLost/Button) AWT, Swing, JavaFX & SWT 5
E Swing Fehlerhaftes Verhalten bei gleichzeitigen Verwendnen von PopUpMenu und JDialog?! AWT, Swing, JavaFX & SWT 5
J Swing JDialog mit static-Funktion anzeigen -> Rückgabewert AWT, Swing, JavaFX & SWT 3
E Daten von JDialog nach JFrame übertragen AWT, Swing, JavaFX & SWT 4
F ActionListener von JButton funktioniert mit JFrame aber nicht mit JDialog AWT, Swing, JavaFX & SWT 2
D Mehrere Comboboxen in JDialog AWT, Swing, JavaFX & SWT 2
F JDialog per Button schliessen - klappt nicht AWT, Swing, JavaFX & SWT 4
BattleMaster246 JDialog erscheint in der Taskbar AWT, Swing, JavaFX & SWT 7
H Sub-Dialog von modalem JDialog aus aufrufen - geht das? AWT, Swing, JavaFX & SWT 6
R Swing JDialog liefert immer false, 2 JListen verknüpfen AWT, Swing, JavaFX & SWT 3
P Swing eigenen Modalen JDialog AWT, Swing, JavaFX & SWT 6
J JDialog verliert Werte AWT, Swing, JavaFX & SWT 3
N Variablen an JDialog übergeben AWT, Swing, JavaFX & SWT 2
P Swing JDialog schliesst nicht AWT, Swing, JavaFX & SWT 2
X Swing JDialog von JInternalFrames überlappen lassen AWT, Swing, JavaFX & SWT 2
O JDialog-JScrollPane-JTable Problem AWT, Swing, JavaFX & SWT 3
N Swing Frage zu modalem JDialog. AWT, Swing, JavaFX & SWT 16
A JFrame oder JDialog AWT, Swing, JavaFX & SWT 12
B Swing JDialog : Herausfinden wie dieser beendet wurde? AWT, Swing, JavaFX & SWT 2
T JDialog ohne Fenstermanager? AWT, Swing, JavaFX & SWT 2
S JDialog in der Taskbar anzeigen AWT, Swing, JavaFX & SWT 3
A Swing JFrame Werte aus JDialog übergeben AWT, Swing, JavaFX & SWT 4
K Swing JDialog ohne Titlebar mit Rahmen AWT, Swing, JavaFX & SWT 5
KrokoDiehl Swing KeyEvents für JDialog / JFrame AWT, Swing, JavaFX & SWT 2
C Swing JComboBox in JDialog AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben