JInternalFrame alleine funktionsfähig

Status
Nicht offen für weitere Antworten.

wildbret

Aktives Mitglied
Hallo,

ich habe ein etwas seltsames Vorhaben mit dem JInternalFrame.
Die GUI meines Programmes ist ein JFrame im BorderLayout mit North, Center und South Komponente.
Diese Komponenten sind JPanels mit wiederrum eigenem Layout.

Nun möchte ich, dass mein Program sowohl alleine lauffähig ist, als auch als JInternalFrame innerhalb einer anderen GUI benutzt werden kann.

Als JFrame ist es alleine lauffähig, aber als JInternalFrame habe ich es bisher noch nicht mal sichtbar machen können, ganz abgesehn davon, dass ich den WindowListener später dann noch ersetzen muss.

Ich zeige hier mal die wesentliche Teile der funktrionierenden Frame-GUI.

Code:
public class FrameSendGUI extends JFrame{
//Globale Variablen 
//...
  public FrameSendGUI() {
      //Lokale Variablen
      //...
      this.addWindowListener(new WindowAdapter(){
         public void windowClosing(WindowEvent e){
	     dispose();
	     System.exit(0);
         }
      });	    
	    
      //Layout
      setResizable(false);	
	    	    
      JPanel nord = new JPanel(new GridLayout(3,5,2,2));	    
      JPanel mitte = new JPanel(new FlowLayout());	     
      JPanel sueden = new JPanel(new GridLayout(3,3,2,2));

      Border nordBorder = BorderFactory.createEmptyBorder(3,3,3,3);
      Border mitteBorder = BorderFactory.createEmptyBorder(0,2,0,0);
      Border suedBorder = BorderFactory.createEmptyBorder(0,3,3,3);

      getContentPane().add(nord, BorderLayout.NORTH);
      getContentPane().add(mitte, BorderLayout.CENTER);
      getContentPane().add(sueden, BorderLayout.SOUTH);	
       
      nord.setBorder(nordBorder);
      mitte.setBorder(mitteBorder);
      sueden.setBorder(suedBorder);
 
      //ab hier werden dann nur noch Komponenten geadded.
  }
//dann kommt noch ein Listener und paar Methoden

  @SuppressWarnings("deprecation")
  public static void main(String[] args) {
	  FrameSendGUI fGUI = new FrameSendGUI();
	  fGUI.setSize(505,513);
	  fGUI.setTitle("...");
	  fGUI.setVisible(true); 		
  }
}

Ist ein JInternFrame überhaupt alleine lauffähig oder muss es in ein anderes Fenster eingebettet sein.

Danke für eure Hilfe
 

javasimon

Mitglied
ich denke nicht, dass der JInternalFrame alleine lauffähig ist - der name sagt ja schon, dass er immer internal ist! mach dein gui layout doch einfach in einem JPanel, diesen kannst du dann wahlweise auf ein JFrame oder eben einen JInternalFrame pflanzen. den WindowListener musst du dann halt beim JFrame noch zusätzlich setzten. beim JInternalFrame brauchst du den ja sowiso nicht, oder willst du gleich das ganze programm beenden wenn der frame geschlossen wird??
Code:
public static void main(String[] args) {
  MyPanel mp1 = new MyPanel();
  JFrame f = new JFrame();
  f.add(mp1);
  f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  ...
  MyPanel mp2 = new MyPanel();
  JInternalFrame infr = new JInternalFrame
  infr.add(mp2);
  ...
}
oder so ähnlich.

gruss simon
 

wildbret

Aktives Mitglied
Danke für deine Antwort, meine Klasse FrameSendGUI extended jetzt nicht mehr JFrame, sondern JPanel.
Außerdem habe ich die Main Methode in eine neue Klasse ausgelagert, dort einen neuen JFrame erstellt und ihm eine Instanz meiner GUI-Klasse zugeordnet.

Das funktioniert soweit und wenn ich dich richtig verstanden habe, braucht jemand der meine GUI mit einem JInternalFrame verwenden möchte nur eine Instanz des Panels FrameSendGUI zu seinem JInternalFrame hinzuzufügen oder?

Macht der Befehl f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); in der main-Methode (siehe unten) das gleiche wie die der WindowListener und brauch ich den dann überhaupt noch?
Wenn ich beides aus der Main rausnehme, warum geht das Fenster dann trotzdem noch zu wenn ich auf das X drücke?

Code:
public class FrameSendGUI extends JPanel{
// ...
            //Layout	    
	    this.setLayout(new BorderLayout());
	    JPanel nord = new JPanel(new GridLayout(3,5,2,2));	    
	    JPanel mitte = new JPanel(new FlowLayout());	     
	    JPanel sueden = new JPanel(new GridLayout(3,3,2,2));
	    Border nordBorder = BorderFactory.createEmptyBorder(3,3,3,3);
	    Border mitteBorder = BorderFactory.createEmptyBorder(0,2,0,0);
	    Border suedBorder = BorderFactory.createEmptyBorder(0,3,3,3);
	    this.add(nord, BorderLayout.NORTH);
	    this.add(mitte, BorderLayout.CENTER);
	    this.add(sueden, BorderLayout.SOUTH);	    
	    nord.setBorder(nordBorder);
	    mitte.setBorder(mitteBorder);
	    sueden.setBorder(suedBorder);
// ...
}

Code:
public class StartGUI {
	
	//Aufruf der GUI(Hauptprogramm)	
	public static void main(String[] args) {
		JFrame f = new JFrame();		
		FrameSendGUI fGUI = new FrameSendGUI();
		
		f.add(fGUI);	
		f.setResizable(false);
		f.setSize(505,513);
		f.setTitle("...");
		f.setVisible(true); 	
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);	
		
		
		f.addWindowListener(new WindowAdapter(){
	      public void windowClosing(WindowEvent e){	       
	        System.exit(0);
	      }
	    });	    
	}
}
 

javasimon

Mitglied
der WindowListener resp. die DefaultCloseOperation hat nichts damit zu tun, ob das fenster zu geht oder nicht, sondern damit was dein programm danach macht. es kann sein, das das programm weiterläuft, obwohl das fenster geschlossen ist. darum brauchst du den System.exit oder den JFrame.EXIT_ON_CLOSE. beides macht aber das selbe. ich würde jedoch EXIT_ON_CLOSE bevorzugen, ausser du willst noch andere sachen machen beim fenster schliessen.
 

wildbret

Aktives Mitglied
Ok danke,

eine Kleinigkeit noch, stimmt der Rest so?
Kann jetzt jeder der meine FrameSendGUI nutzen möchte sich aussuchen, ob er sie einem JFrame, JInternalFrame, ... adden möchte?
 

javasimon

Mitglied
na klar! mehr noch: du kannst es so auch z.B. zu einem JPanel oder einer anderen grafischen komponente adden. was immer du möchtest!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D JInternalFrame wechselt Position beim ersten Click AWT, Swing, JavaFX & SWT 0
J Mehrere JInternalFrame; GetValues AWT, Swing, JavaFX & SWT 1
L LookAndFeel JInternalFrame aussehen isSelected() true vs false AWT, Swing, JavaFX & SWT 0
X JInternalFrame vor Java2D-Zeichnung langsam bzw. Gui friert ein AWT, Swing, JavaFX & SWT 1
G Swing JInternalFrame AWT, Swing, JavaFX & SWT 0
R Custome TitlePane JInternalFrame - ControlButton AWT, Swing, JavaFX & SWT 2
B JInternalFrame Focus setzten geht nicht AWT, Swing, JavaFX & SWT 2
J Swing JInternalFrame modal setzen? AWT, Swing, JavaFX & SWT 13
J Swing JInternalFrame schließen ändern? AWT, Swing, JavaFX & SWT 7
J Swing Fokus JInternalFrame fehlerhaft AWT, Swing, JavaFX & SWT 4
G JInternalframe geöffnet oder nicht? AWT, Swing, JavaFX & SWT 4
G Swing und MDI mit JInternalFrame AWT, Swing, JavaFX & SWT 11
H Swing JInternalFrame, JDesktopPane und ein BorderLayout AWT, Swing, JavaFX & SWT 2
R Problem beim Anzeigen von Bildern auf JInternalFrame AWT, Swing, JavaFX & SWT 6
eskimo328 Java6 Methode in Java5 verwenden (memory leak JInternalFrame) AWT, Swing, JavaFX & SWT 4
A Swing getInsets() JInternalFrame AWT, Swing, JavaFX & SWT 2
R Swing JInternalFrame Opaque AWT, Swing, JavaFX & SWT 6
M JInternalFrame - Handhabung? AWT, Swing, JavaFX & SWT 5
algorismi JInternalframe Icon AWT, Swing, JavaFX & SWT 14
S JInternalFrame oder JTextArea neu laden AWT, Swing, JavaFX & SWT 2
V JInternalFrame wird überzeichnet AWT, Swing, JavaFX & SWT 8
T Neuen JInternalFrame von JLabel "herunterziehen" AWT, Swing, JavaFX & SWT 6
T JInternalframe auf DropTarget droppen? AWT, Swing, JavaFX & SWT 7
O Swing JInternalFrame komplett neu laden AWT, Swing, JavaFX & SWT 3
B JInternalFrame - Maximieren AWT, Swing, JavaFX & SWT 11
X Grafikfehler mit JInternalFrame (Überlagerungen) AWT, Swing, JavaFX & SWT 2
B Swing Image als Hintergrund im JInternalFrame - Problem AWT, Swing, JavaFX & SWT 3
J Swing JInternalFrame - mit DesktopManager maximieren AWT, Swing, JavaFX & SWT 3
J Swing JInternalFrame - Bug: getDesktopManager.deiconify(...) AWT, Swing, JavaFX & SWT 2
W JInternalFrame + JList Problem AWT, Swing, JavaFX & SWT 5
H Swing JInternalFrame aus JFrame ziehen AWT, Swing, JavaFX & SWT 6
N JInternalFrame minimieren und schließen AWT, Swing, JavaFX & SWT 2
T JFrame als JInternalFrame darstellen AWT, Swing, JavaFX & SWT 2
K Swing JInternalFrame und LayoutManager AWT, Swing, JavaFX & SWT 6
C Zeichnen über JInternalFrame der ICEpdf-Dokument anzeigt AWT, Swing, JavaFX & SWT 3
T Aussehen von JFrame bzw JInternalFrame ändern... wie? AWT, Swing, JavaFX & SWT 23
J Swing JInternalFrame AWT, Swing, JavaFX & SWT 5
S Swing JInternalFrame: Mehrere Probleme AWT, Swing, JavaFX & SWT 3
S Swing JInternalFrame: Titelleiste entfernen AWT, Swing, JavaFX & SWT 5
R Swing JFrame oder JInternalFrame? AWT, Swing, JavaFX & SWT 13
B JInternalFrame resize event AWT, Swing, JavaFX & SWT 2
X JInternalFrame AWT, Swing, JavaFX & SWT 3
G JInternalFrame AWT, Swing, JavaFX & SWT 2
A JSplitPane in JInternalFrame AWT, Swing, JavaFX & SWT 2
G JInternalFrame und beinhaltende Komponenten 'abschalten' AWT, Swing, JavaFX & SWT 2
K Tab von JPanel nach JInternalFrame AWT, Swing, JavaFX & SWT 2
M JInternalFrame Titel sichtbar setzen AWT, Swing, JavaFX & SWT 2
K JInternalFrame - schwarzer Bildschirm AWT, Swing, JavaFX & SWT 2
M JInternalFrame ohne Titelbalken AWT, Swing, JavaFX & SWT 5
A erneutes Öffnen jInternalFrame: illegal component position AWT, Swing, JavaFX & SWT 4
S Kontextmenu im JInternalFrame unterdrücken AWT, Swing, JavaFX & SWT 5
G Layerproblem JInternalFrame AWT, Swing, JavaFX & SWT 2
X Externe Anwendungen in JInternalframe starten. AWT, Swing, JavaFX & SWT 5
T JInternalFrame Vollbild Problem AWT, Swing, JavaFX & SWT 4
X Relative positionierung in einem JInternalFrame AWT, Swing, JavaFX & SWT 3
J JInternalFrame "schimmert" durch AWT, Swing, JavaFX & SWT 4
D JInternalFrame iconified Position nach parent-resize AWT, Swing, JavaFX & SWT 2
DeeDee0815 JInternalFrame in JScrollpane AWT, Swing, JavaFX & SWT 4
C Hilfe bei JInternalFrame AWT, Swing, JavaFX & SWT 6
J JInternalFrame überlagert/unterlagert anderen Elementen AWT, Swing, JavaFX & SWT 2
DeeDee0815 setContentPane()-Problem bei JInternalFrame AWT, Swing, JavaFX & SWT 2
W Unterdrückung von FrameIcon-Funktion im JInternalFrame AWT, Swing, JavaFX & SWT 5
F JInternalFrame Look and Feel AWT, Swing, JavaFX & SWT 3
W Realisierung Gradient in der Titlebar JInternalFrame AWT, Swing, JavaFX & SWT 7
T JInternalFrame Konflikt mit LayoutManager AWT, Swing, JavaFX & SWT 5
T JInternalFrame und Iconified AWT, Swing, JavaFX & SWT 10
C Tooltip nur anzeigen, wenn JInternalFrame minimiert AWT, Swing, JavaFX & SWT 3
M JInternalFrame mouseEntered/mouseExited AWT, Swing, JavaFX & SWT 8
S Eine Art JInternalFrame in JSplitPane AWT, Swing, JavaFX & SWT 3
G Problem bei JTable in JInternalFrame AWT, Swing, JavaFX & SWT 4
megachucky JInternalFrame modal setzen AWT, Swing, JavaFX & SWT 3
megachucky JInternalFrame Größe und Location nicht einstellbar AWT, Swing, JavaFX & SWT 8
T JPanel mit paintComponent methode im JInternalFrame AWT, Swing, JavaFX & SWT 3
R Rückgabewert TreeSelectionListener für JInternalFrame AWT, Swing, JavaFX & SWT 4
J Applet in JInternalFrame laden AWT, Swing, JavaFX & SWT 9
B JInternalFrame in den Vordergrund rücken + Focus AWT, Swing, JavaFX & SWT 15
F Anzeigen eines JInternalFrame auf einen JFrame AWT, Swing, JavaFX & SWT 3
B JInternal Frame laden von anderem JInternalFrame AWT, Swing, JavaFX & SWT 3
A JInternalFrame setMaximizeable(false) wehrt sich AWT, Swing, JavaFX & SWT 2
S JInternalFrame AWT, Swing, JavaFX & SWT 8
welterde Menü in der Titelleiste des JInternalFrame AWT, Swing, JavaFX & SWT 4
S Problem, neuen JInternalFrame zur Laufzeit anzuzeigen AWT, Swing, JavaFX & SWT 8
M Cursor im deaktivierten JInternalFrame AWT, Swing, JavaFX & SWT 2
V JInternalFrame in einen Panel? AWT, Swing, JavaFX & SWT 2
C Scrollbalken bei einem JInternalFrame AWT, Swing, JavaFX & SWT 6
G JInternalFrame mit Doppelklick schließen möglich? AWT, Swing, JavaFX & SWT 2
D JInternalFrame unverschiebbar AWT, Swing, JavaFX & SWT 7
G JInternalFrame Fenster Status von Icon nach Normal? AWT, Swing, JavaFX & SWT 5
G lightweight >> heavyweight bei JInternalFrame für JMen AWT, Swing, JavaFX & SWT 13
P JInternalFrame: Verhindern das man es verschieben kann AWT, Swing, JavaFX & SWT 2
K JInternalFrame: internes Fenster zentrieren AWT, Swing, JavaFX & SWT 2
D JInternalFrame beim Öffnen nicht aktiv! AWT, Swing, JavaFX & SWT 5
A Probleme mit JInternalFrame AWT, Swing, JavaFX & SWT 5
javasdann Höhe von Titlebar in jInternalFrame ändern AWT, Swing, JavaFX & SWT 5
S Auf Komponenten eines JInternalFrame zugreifen AWT, Swing, JavaFX & SWT 2
A Ich kann kein JInternalFrame anzeigen ! AWT, Swing, JavaFX & SWT 7
P JInternalFrame - Problem AWT, Swing, JavaFX & SWT 3
F Listener für JPanel im JInternalFrame AWT, Swing, JavaFX & SWT 5
S finalizie() bei JInternalFrame wird nicht aufgerufen ! AWT, Swing, JavaFX & SWT 11
A JInternalFrame AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben