Swing Window nur bedingt im Vordergrund

beastofchaos

Bekanntes Mitglied
Hallo Leute,
Ist es möglich, dass ich mit einer Eigenschaft einstelle, dass in meinem Programm (mit seinem "Hauptfenster") ein Fenster nur dann sich in den Vordergrund setzt, wenn auch das Hauptfenster offen ist. Beispiel dafür wäre Paint.Net, wo Farb-, Tool-, Ebenen- und ähnliche Fenster offen sind.

Ich dachte möglicherweise daran, in der paint-Methode dieses speziellen Fensters abzufragen, ob das Hauptfenster oder das Fenster selber im Vordergrund. Ehrlich gesgat, glaub ich auch nicht, dass das funktioniert, und vorallem macht man sowas ja nicht in einer paint-Methode (Vll in "isAlwaysOnTop()"...).
Hab aber beides auch noch nicht ausprobiert.

Gruß, Euer Thomas
 

beastofchaos

Bekanntes Mitglied
Folgenden Code hab ich schon ausprobiert(main ist das Hauptfenster, Text ist im Konstruktor von dem "Unterfenster"). Aber leider funktioniert es immer noch nicht.

Java:
addWindowFocusListener(new WindowAdapter(){
            @Override
            public void windowLostFocus(WindowEvent e){
                boolean a = main.isFocused();
                boolean b = isFocused();
                System.out.println(a + " --- " + b);
                if (main.isFocused() || isFocused()){
                	setAlwaysOnTop(true);
                }
                else{
                	setAlwaysOnTop(false);
                }
            }
            
            @Override
            public void windowGainedFocus(WindowEvent e){
                boolean a = main.isFocused();
                boolean b = isFocused();
                System.out.println(a + " --- " + b);
                if (main.isFocused() || isFocused()){
                	setAlwaysOnTop(true);
                }
                else{
                	setAlwaysOnTop(false);
                }
            }
        });

Ich bin ratlos, könnt ihr mir helfen?

Gruß, Thomas
 

beastofchaos

Bekanntes Mitglied
Ich benutze bereits einen JDialog. Habs mit seModal false und true versucht. Hab jetzt eher die Idee gehabt, dass ich mit dem WindowListener des Hauptfenster spiele. Wenn er den Focus bekommt, soll er das Unterfenster visible machen. Bei LostFocus andersrum.
Leider wird das Unterfenster automatisch anfokusiert, wenn es visible wird, was dann zu LostFocus vom Hauptfenster führt. DDas sieht dann so aus, dass die beiden die ganze Zeit blinken - also immer wieder gegenseitig den Focus bekommen :/
Hab das mit ner globalen Boolean umgehen wollen, aber dann komm ich wieder iwie auf das Ergebnis, dass das Unterfenster immer AlwaysOnTop wird.

Hier mal mein Versuch, dem Hauptfenster das einzuspeisen:
Java:
public abstract class EDModel extends JDialog{
    private int value;
    private JTextField fieldValue;
    private JScrollBar scroller;
    
    private BufferedImage oldImg;
    private ArrayList<EDModel> listDialogs;
    private Main main;
    public boolean alwaysOnTopChanged = false;
    
    public EDModel(ArrayList<EDModel> dialogs, Main target, String title){
        super();
        listDialogs = dialogs;
        listDialogs.add(this);
        oldImg = ((ImageDesign)Saves.properties.process.getPaints().clone()).getImage();
        setTitle(title);
        setSize(132, 500);
        main = target;
        setLocation(getSpecialLocation(main.center));
        setVisible(true);
        setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
        main.addWindowFocusListener(new WindowAdapter(){
            @Override
            public void windowLostFocus(WindowEvent e){
            	if (alwaysOnTopChanged || EDModel.this.isFocused() || EDModel.this.isVisible()){
                	alwaysOnTopChanged = false;
            		return;
            	}
            	alwaysOnTopChanged = true;
                EDModel.this.setAlwaysOnTop(false);
                EDModel.this.setVisible(false);
            }
            
            @Override
            public void windowGainedFocus(WindowEvent e){
            	if (alwaysOnTopChanged){
                	alwaysOnTopChanged = false;
            		return;
            	}
            	alwaysOnTopChanged = true;
                EDModel.this.setAlwaysOnTop(true);
                EDModel.this.setVisible(true);
            }
        });
        ...
    }
    ...
}

Habt ihr noch ne Idee. Sonst muss ich wohl oder übel darauf umswitchen, dass ich statt einem extra Fenster iwie ein JPanel speziell einbaue mit nem Custom-LayoutManager, damit es z.B. die rechte Seite zur Hälfte einnimmt.
Oder ich nem eine ToolBar, wobei ich bei denen immer Probleme habe, die zu löschen oder zu versetzen (per Quelltext).

Was empfehlt ihr mir? (Fenster weiter versuchen, eigener LayoutManager, ToolBar basteln)

Gruß, Thomas
 
V

vanny

Gast
in deiner JDialogKlasse
Java:
super.JDialog(deinFrame);//an Stelle von super();...damit bestimmst du den Owner
...setModal(false);!!!
das is alles was du benötigst, dann kannste das ganze Heckmeck wieder rausschmeißen.:D
Gruß Vanny
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
izoards Java FX Window Event SHOWING AWT, Swing, JavaFX & SWT 17
ruutaiokwu SWT "Google Window Builder" tut keine jar's ins Projekt rein bei SWT-Projekt AWT, Swing, JavaFX & SWT 22
L JavaFX AnchorPane an die Größe der Scene oder Window binden? AWT, Swing, JavaFX & SWT 3
A Objekt von einem Window erstellen? AWT, Swing, JavaFX & SWT 8
S Window Builder AWT, Swing, JavaFX & SWT 20
I Modal Window AWT, Swing, JavaFX & SWT 26
ralfb1105 JavaFX Wie Text Label in neuem Window von Main Stage setzen? AWT, Swing, JavaFX & SWT 6
C JavaFX Window-Position AWT, Swing, JavaFX & SWT 3
Neumi5694 java.awt.Window nach javafx.stage.Window AWT, Swing, JavaFX & SWT 1
T Custom Window ohne Swing / AWT / FX..?! AWT, Swing, JavaFX & SWT 1
Ghostman1711 GUI Java von Klasse mit Application Windows anderes Application Window aufrufen AWT, Swing, JavaFX & SWT 6
Z Window Builder - Labels mit setText befüllen AWT, Swing, JavaFX & SWT 11
B JavaFX Werte aus eingefügtem Window lesen AWT, Swing, JavaFX & SWT 0
EisKaffee Swing Window Builder installieren AWT, Swing, JavaFX & SWT 1
D SWT Window passt Größe nicht an AWT, Swing, JavaFX & SWT 4
H Drag component out of window AWT, Swing, JavaFX & SWT 1
B Swing "Window Manager" - Gedankenprobleme AWT, Swing, JavaFX & SWT 9
G Window aus anderer Klasse aufrufen AWT, Swing, JavaFX & SWT 4
J Swing Window-Builder-Projekt richtig übertragen AWT, Swing, JavaFX & SWT 2
H Swing Google Window-Builder AWT, Swing, JavaFX & SWT 4
S Flackerndes Window beim DnD AWT, Swing, JavaFX & SWT 37
D SWT CheckBox auslesen (Window Builder Pro) AWT, Swing, JavaFX & SWT 2
frankred Swing Canvas nach "Window-resize" neu Zeichnen lassen wegen Anzeigefehler AWT, Swing, JavaFX & SWT 4
N Window transparent, Komponenten nicht transparent AWT, Swing, JavaFX & SWT 11
R Swing Sequenz aus farbigen Quadraten in Window anzeigen AWT, Swing, JavaFX & SWT 11
J Fehlermeldung adding a window to a container AWT, Swing, JavaFX & SWT 9
L AWT Window, Dialog und verschiedene Betriebssysteme AWT, Swing, JavaFX & SWT 2
3 Eigenes Frame/Window programmieren AWT, Swing, JavaFX & SWT 2
T SWT Window Builder Pro File Dialog anzeigen AWT, Swing, JavaFX & SWT 10
J Swing kann window nicht übergeben AWT, Swing, JavaFX & SWT 14
L Fenster inaktiv setzen / deaktivieren (unable to close window) AWT, Swing, JavaFX & SWT 16
data89 Code-completion-window erzeugen - wie? AWT, Swing, JavaFX & SWT 2
Spin Window Event Beispiel AWT, Swing, JavaFX & SWT 6
H Eclipse View / Window Layout AWT, Swing, JavaFX & SWT 3
T Exception: Adding a window to a container AWT, Swing, JavaFX & SWT 14
M "Window"-Bibilotheck AWT, Swing, JavaFX & SWT 4
I JFrame-Anmerkung "Java Applet Window" entfernen AWT, Swing, JavaFX & SWT 4
T Synchrones Window-verschieben AWT, Swing, JavaFX & SWT 4
K Prompt window in Java? AWT, Swing, JavaFX & SWT 3
S Window über beide Bildschirme maximieren AWT, Swing, JavaFX & SWT 8
F Window#setAlwaysOnTop und Java 1.4.x AWT, Swing, JavaFX & SWT 5
M createImage in Window-Unterklasse AWT, Swing, JavaFX & SWT 4
M Window unterteilen AWT, Swing, JavaFX & SWT 9
R JFrame -- Variable Positionierung durch Window Manager? AWT, Swing, JavaFX & SWT 2
G Window in Taskleiste AWT, Swing, JavaFX & SWT 13
G Window wird angezeigt, nur der Inhalt nicht AWT, Swing, JavaFX & SWT 5
S Window Listener, Exit, bin am Verzweifeln AWT, Swing, JavaFX & SWT 24
U Reaktion auf closing window AWT, Swing, JavaFX & SWT 7
G Listener fuer Window Close AWT, Swing, JavaFX & SWT 2
M not serializable: sun.awt.window.WImage AWT, Swing, JavaFX & SWT 8
N frage ueber D&D von window wie in einige IDE AWT, Swing, JavaFX & SWT 7
P Transparentes Window/JFrame (mit SkinLF?) AWT, Swing, JavaFX & SWT 10
R "Statusbar" - JFrame mit 'Java Applet Window' AWT, Swing, JavaFX & SWT 18
S Performance-Problem: JTextArea als Logging-Window AWT, Swing, JavaFX & SWT 8
J Window Listener funzt nicht richtig AWT, Swing, JavaFX & SWT 5
R Die (J)Frame window listener AWT, Swing, JavaFX & SWT 7
H Swing Anpassen der Textgröße im JLabel funktioniert nur bedingt AWT, Swing, JavaFX & SWT 7
D Swing JTable- Meine Tabelle der Klasse JTable wird nur bedingt angezeigt AWT, Swing, JavaFX & SWT 4
T Views bedingt öffnen oder schließen AWT, Swing, JavaFX & SWT 6
M Problem mit dem Anzeigen von Frames im Vordergrund AWT, Swing, JavaFX & SWT 5
T Swing Java-Frame bei Programmstart NICHT im Vordergrund öffnen AWT, Swing, JavaFX & SWT 2
M Internal Frame in den vordergrund AWT, Swing, JavaFX & SWT 4
S JLabel in den Vordergrund rücken AWT, Swing, JavaFX & SWT 1
P Anwendung kommt nach minimieren nicht mehr in den Vordergrund AWT, Swing, JavaFX & SWT 5
X Swing 2 Fenster (1 im Vordergrund) AWT, Swing, JavaFX & SWT 6
TheJavaKid JFrame defokusieren aber im Vordergrund behalten AWT, Swing, JavaFX & SWT 0
G JavaFX Sub-Fenster im Vordergrund halten AWT, Swing, JavaFX & SWT 5
B JFrame kommt nicht in den Vordergrund AWT, Swing, JavaFX & SWT 7
I Fenster immer im Vordergrund AWT, Swing, JavaFX & SWT 14
A Vordergrund und Fokus setzten oder Modales Einabefeld AWT, Swing, JavaFX & SWT 28
M JLayeredPane mit JPanel im Vordergrund, Hintergrundelemente sperren AWT, Swing, JavaFX & SWT 7
R Label in den Vordergrund einblenden AWT, Swing, JavaFX & SWT 5
N Komponenten in den Vordergrund AWT, Swing, JavaFX & SWT 5
M JFrame in den Vordergrund holen AWT, Swing, JavaFX & SWT 2
M JFrame im Vordergrund halten AWT, Swing, JavaFX & SWT 4
A JLabel in Vordergrund AWT, Swing, JavaFX & SWT 22
F Multi-Frame im vordergrund AWT, Swing, JavaFX & SWT 2
M Buttons im Vordergrund AWT, Swing, JavaFX & SWT 2
J Fenster in den Vordergrund holen AWT, Swing, JavaFX & SWT 3
M Swing JDialog in den Vordergrund AWT, Swing, JavaFX & SWT 2
O JFrame permanet im Vordergrund trotz Alt+Tab AWT, Swing, JavaFX & SWT 2
A Programm automatisch in den Vordergrund AWT, Swing, JavaFX & SWT 5
Z JOptionPane mit einer Methode in dem Vordergrund setzen? AWT, Swing, JavaFX & SWT 6
G Fenster immer im Vordergrund und aktiv? AWT, Swing, JavaFX & SWT 2
C JLabel in de Vordergrund AWT, Swing, JavaFX & SWT 4
B SWT-Shell in den Vordergrund bringen AWT, Swing, JavaFX & SWT 2
S Frame Fenster immer im vordergrund AWT, Swing, JavaFX & SWT 3
N JComboBox in den Vordergrund senden? AWT, Swing, JavaFX & SWT 7
vogella JOptionPane in den Vordergrund bringen AWT, Swing, JavaFX & SWT 2
E Programm immer im Vordergrund ! AWT, Swing, JavaFX & SWT 8
B JInternalFrame in den Vordergrund rücken + Focus AWT, Swing, JavaFX & SWT 15
B Fenster in den Vordergrund holen AWT, Swing, JavaFX & SWT 4
J JTabbedPane Tab in den Vordergrund (aktiviert) bekommen ? AWT, Swing, JavaFX & SWT 2
L Falsches Fenster erscheint im Vordergrund bei Taskwechsel AWT, Swing, JavaFX & SWT 3
F Fenster in den Vordergrund aber nicht im Focus AWT, Swing, JavaFX & SWT 21
T Dialog nur anwendungsweit in Vordergrund AWT, Swing, JavaFX & SWT 7
TRunKX JAva Fenster in den Vordergrund bringen AWT, Swing, JavaFX & SWT 7
A Dialog im Vordergrund halten AWT, Swing, JavaFX & SWT 41
G Buttons und Label nicht im Vordergrund AWT, Swing, JavaFX & SWT 20
G JFrame in den Vordergrund bringen AWT, Swing, JavaFX & SWT 8

Ähnliche Java Themen

Neue Themen


Oben