JInternalFrame und Iconified

Status
Nicht offen für weitere Antworten.

tom g.

Aktives Mitglied
Hallo Forum,

ich versuche ein JInternalFrame, wenn es zu einem Icon gemacht wird, an der Position zu halten, wo es war.

Leider klappt das nicht.

Hier mal der Code :

Code:
/*
 * NewJFrame.java
 *
 * Created on 4. April 2007, 22:05
 */

package sys.frm;
import java.awt.Color;
/**
 *
 * @author  cttogo
 */
public class NewJFrame extends javax.swing.JFrame {
    private int x = 319;
    private int y = 0;
    
    /** Creates new form NewJFrame */
    public NewJFrame() {
        initComponents();
        
    }
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">                          
    private void initComponents() {
        jInternalFrame1 = new javax.swing.JInternalFrame();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        jInternalFrame1.setIconifiable(true);
        jInternalFrame1.setTitle("Test");
        jInternalFrame1.setVisible(true);
        jInternalFrame1.addComponentListener(new java.awt.event.ComponentAdapter() {
            public void componentMoved(java.awt.event.ComponentEvent evt) {
                jInternalFrame1ComponentMoved(evt);
            }
        });
        jInternalFrame1.addInternalFrameListener(new javax.swing.event.InternalFrameListener() {
            public void internalFrameActivated(javax.swing.event.InternalFrameEvent evt) {
            }
            public void internalFrameClosed(javax.swing.event.InternalFrameEvent evt) {
            }
            public void internalFrameClosing(javax.swing.event.InternalFrameEvent evt) {
            }
            public void internalFrameDeactivated(javax.swing.event.InternalFrameEvent evt) {
            }
            public void internalFrameDeiconified(javax.swing.event.InternalFrameEvent evt) {
            }
            public void internalFrameIconified(javax.swing.event.InternalFrameEvent evt) {
                jInternalFrame1InternalFrameIconified(evt);
            }
            public void internalFrameOpened(javax.swing.event.InternalFrameEvent evt) {
            }
        });

        org.jdesktop.layout.GroupLayout jInternalFrame1Layout = new org.jdesktop.layout.
GroupLayout(jInternalFrame1.getContentPane());
        jInternalFrame1.getContentPane().setLayout(jInternalFrame1Layout);
        jInternalFrame1Layout.setHorizontalGroup(
            jInternalFrame1Layout.createParallelGroup(org.jdesktop.layout.
GroupLayout.LEADING)
            .add(0, 173, Short.MAX_VALUE)
        );
        jInternalFrame1Layout.setVerticalGroup(
            jInternalFrame1Layout.createParallelGroup(org.jdesktop.layout.
GroupLayout.LEADING)
            .add(0, 95, Short.MAX_VALUE)
        );

        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.
GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(org.jdesktop.layout.
GroupLayout.LEADING)
            .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
                .addContainerGap(319, Short.MAX_VALUE)
                .add(jInternalFrame1, org.jdesktop.layout.GroupLayout.
PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(org.jdesktop.layout.
GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .add(jInternalFrame1, org.jdesktop.layout.GroupLayout.
PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(237, Short.MAX_VALUE))
        );
        pack();
    }// </editor-fold>                        

    private void jInternalFrame1InternalFrameIconified(javax.swing.event.
InternalFrameEvent evt) {                                                       
       jInternalFrame1.setLocation(x,y);
       validate();
       repaint();
       System.out.println("ICON jInternalFrame1 ist an: " + jInternalFrame1.getX() + " | " 
+ jInternalFrame1.getY());
    }                                                      

    private void jInternalFrame1ComponentMoved(java.awt.event.ComponentEvent evt) {                                               
        jInternalFrame1.setLocation(x,y);
        validate();
        repaint();
        System.out.println("Move jInternalFrame1 ist an: " + jInternalFrame1.getX() + " | " 
+ jInternalFrame1.getY());
    }                                              
   
  
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new NewJFrame().setVisible(true);
            }
        });
    }
    
    
    // Variables declaration - do not modify                     
    private javax.swing.JInternalFrame jInternalFrame1;
    // End of variables declaration                   
    
    
}

Ich habe das Gefühle, wenn ein JInternalFrame ein Icon ist, wird es als JInternalFrame nicht mehr angesprochen.

Ich habe das mal in NetBeans zusammengeklickt, brauche aber in einer anderen Anwendung.

Da war aber schon sehr viel mehr Code drin.

Das hier sollte das Problem auch zeigen.

THX

Tom

PS: Die Umbrüche im Code sind nur dafür da, das man hier nicht kilometerweit scrollen muss.
 

The_S

Top Contributor
Wenn ein JInternalFrame ein Icon ist??? :shock: Ein JInternalFrame ist ein JInternalFrame und sonst nichts!
 

tom g.

Aktives Mitglied
Hobbit_Im_Blutrausch hat gesagt.:
Wenn ein JInternalFrame ein Icon ist??? :shock:

Wenn ich die JInternalFrame mit Iconified minimiert habe. Sorry. :oops:

Hobbit_Im_Blutrausch hat gesagt.:
Ein JInternalFrame ist ein JInternalFrame und sonst nichts!

Aber dann sollte der Code doch klappen.

Mach er aber nicht.

Wo liegt dann mein Denkfehler?

Tom
 

The_S

Top Contributor
tom g. hat gesagt.:
Hobbit_Im_Blutrausch hat gesagt.:
Ein JInternalFrame ist ein JInternalFrame und sonst nichts!

Aber dann sollte der Code doch klappen.

Diese Aussage hat nichts mit deinem Code zu tun, sondern lediglich damit, dass ein JInternalFrame kein Icon sein kann ;) .

Was willst du genau erreichen? Dass das JInternalFrame an Ort und stelle minimiert wird und nicht in diese fiktive Taskbar im JDesktopPane gelegt wird? In diesem Fall solltest du das minimieren Abfangen und einfach die Größe des JInternalFrames auf die der Statusleiste des JInternalFrames minimieren. Eine andere Lösung wäre mir auf die schnelle nicht bekannt.
 

tom g.

Aktives Mitglied
Hobbit_Im_Blutrausch hat gesagt.:
Dass das JInternalFrame an Ort und stelle minimiert wird und nicht in diese fiktive Taskbar im JDesktopPane gelegt wird?

Ja das habe ich vor.

Leider geht es so

Code:
private void jInternalFrame1InternalFrameIconified(javax.swing.event.InternalFrameEvent evt) {                                                       
        jInternalFrame1.setIconifiable(false);
        jInternalFrame1.setLocation(x,y);
        jInternalFrame1.setSize(jInternalFrame1.getWidth(), 25);
        validate();
        repaint();
        System.out.println("ICON jInternalFrame1 ist an: " + jInternalFrame1.getX() + " | " + jInternalFrame1.getY());
    }

nicht. Das JInternalFrame wird immer noch nach unten gesetzt.

ich habe in der API das hier gefunden:
Code:
IS_ICON_PROPERTY

public static final String IS_ICON_PROPERTY

    Constrained property name indicating that the internal frame is iconified.

Dachte eventuell geht es dann mit
Code:
IS_ICON_PROPERTY.setLocation(x,y);

Doch leider bekomme ich folgenden Fehler beim Compiliren.
Code:
Compiling 1 source file to Z:\JProggerSlave\build\classes
Z:\JProggerSlave\src\sys\frm\NewJFrame.java:97: cannot find symbol
symbol  : variable IS_ICON_PROPERTY
location: class sys.frm.NewJFrame
        IS_ICON_PROPERTY.setLocation(x,y);
1 error
BUILD FAILED (total time: 0 seconds)

Ich komme momentan nicht weiter.

Tom
 

The_S

Top Contributor
Du willst auf einen String eine Methode von JInternalFrame anwenden? Das kann doch gar nicht gehen!

Wie ich bereits gepostet habe, so einfach geht das, was du vorhast nicht. Eine Alternative hab ich dir dazu ja auch schon vorgeschlagen ...
 

tom g.

Aktives Mitglied
Hobbit_Im_Blutrausch hat gesagt.:
Wie ich bereits gepostet habe, so einfach geht das, was du vorhast nicht. Eine Alternative hab ich dir dazu ja auch schon vorgeschlagen ...

Habe ich ja mit
Code:
private void jInternalFrame1InternalFrameIconified(javax.swing.event.InternalFrameEvent evt) {                                                       
        jInternalFrame1.setIconifiable(false);
        jInternalFrame1.setLocation(x,y);
        jInternalFrame1.setSize(jInternalFrame1.getWidth(), 25);
        validate();
        repaint();
        System.out.println("ICON jInternalFrame1 ist an: " + jInternalFrame1.getX() + " | " + jInternalFrame1.getY());
    }

versucht. Der wird aber erst ausgeführt, wenn die Statusleiste schon unten ist.

Setze ich jInternalFrame1.setIconifiable(false); dann fehlt mir der Button zum minimieren.

Welche Möglichkeit habe ich denn noch?

Tom
 

The_S

Top Contributor
Achso, sry hab mir deinen Quelltext nicht angesehen :oops: . Du könntest es nicht minimierbar machen und z. B. am Ende von deinem JInternalFrame einen kleinen, dezenten "Pfeil-Nach-Oben"-Button einfügen, der dann dein Fenster auf die Titelleiste minimiert.

Evtl. kann man auch irgendwo die Funktion der Buttons abfangen, bevor diese Ausgeführt werden (AWTEvent). Aber ob und wie das geht ... sry keine Ahnung!
 

André Uhres

Top Contributor
Wenn man JInternalFrame erweitert, dann kann man mittels eines InternalFrameListeners
auf desktopIcon zugreifen um neu zu positionieren:
Code:
package desktop;
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
public class InternalframeDemo extends JFrame {
    public InternalframeDemo() {
        JDesktopPane dpane = new JDesktopPane();
        Myframe internalFrame = new Myframe("JInternalFrame");
        internalFrame.setBounds(20,20,100,150);
        internalFrame.setIconifiable(true);
        internalFrame.setVisible(true);
        dpane.add(internalFrame);
        getContentPane().add( dpane, BorderLayout.CENTER );
    }
    public static void main(final String[] args) {
        JFrame frame = new InternalframeDemo();
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.setSize(new Dimension(400,300));
        frame.setVisible(true);
    }
}
class Myframe extends JInternalFrame implements InternalFrameListener{
    public Myframe(final String title){
        super(title);
        addInternalFrameListener(this);
    }
    public void internalFrameOpened(final InternalFrameEvent e) {}
    public void internalFrameClosing(final InternalFrameEvent e) {}
    public void internalFrameClosed(final InternalFrameEvent e) {}
    public void internalFrameIconified(final InternalFrameEvent e) {
        desktopIcon.setLocation(getLocation());
    }
    public void internalFrameDeiconified(final InternalFrameEvent e) {}
    public void internalFrameActivated(final InternalFrameEvent e) {}
    public void internalFrameDeactivated(final InternalFrameEvent e) {}
}
Man kann aber auch mit Hilfe der Methode getDesktopIcon() an das Icon rankommen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D JInternalFrame iconified Position nach parent-resize AWT, Swing, JavaFX & SWT 2
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
W JInternalFrame alleine funktionsfähig AWT, Swing, JavaFX & SWT 5
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
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
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


Oben