Undecorated JXDialog Resizable machen

Status
Nicht offen für weitere Antworten.

JSteinhilber

Bekanntes Mitglied
Habe ich gestern noch Verschonung vor meiner Person versprochen, muß ich das Versprechen heute bereits wieder brechen.....

Ich brauche für meine Java-Anwendung (so sie denn jemals funktionieren sollte) einige nicht modale Hilfsdialoge.
Für diesen Zweck habe ich die Klasse JXDialog "missbraucht".

Siehe das Fenster "Demo Hilfs-Dialog".
HilfsDialog.jpg


Die Basis für das Fenster "Demo Hilfs-Dialog" bildet ein JXDialog mit dem Schalter "setUndecorated(true)" und eben die Elemente wie auf der Grafik oben dargestellt, also TitledPanel, JLabel, JTextField,JXTable der JButton zum schließen des Dialogs.

Hat vielleicht jemand eine Idee wie ich dieses Teil "resizable" und wenn irgend möglich "iconifiable" machen kann.

Wäre prima und äußerst dankbar wäre ich obendrein

Grüße
Jürgen
 

Wildcard

Top Contributor
Ab setUndecorated(true) bist du auf dich selbst gestellt. Da ist Handarbeit mit ComponentListener, MouseMotionListener etc. gefragt.
 

JSteinhilber

Bekanntes Mitglied
Ab setUndecorated(true) bist du auf dich selbst gestellt. Da ist Handarbeit mit ComponentListener, MouseMotionListener etc. gefragt.

Hallo Wildcard,
ja das dachte ich mir, und die Sache mit dem Fenster unherzerren habe ich bereits gelöst.
Code:
			JXTitledPanel.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
				public void mouseDragged(java.awt.event.MouseEvent e) {
					if(clickY > 0){
						thisDlg.setLocation(e.getXOnScreen()-clickX,e.getYOnScreen()-clickY);
						thisDlg.repaint();
					}
				}
			});

			JXTitledPanel.addMouseListener(new java.awt.event.MouseAdapter() {   
				public void mouseReleased(java.awt.event.MouseEvent e) {    
					clickX = 0;
					clickY = 0;
				}
				public void mousePressed(java.awt.event.MouseEvent e) {
					if (e.getY() <= 25){
						clickY = e.getY();
						clickX = e.getX();
					}
				}
			});

Ich habe aber überhaupt keine Idee wie ich die "Resizerei" auch (und vor allem) unter gestalterischen Gesichtspunkten lösen könnte.

Das ist Schritt 1, und mit Schritt 2, also "iconifiable" will ich mich erst dann beschäftigen, wenn ich Schritt 1 befriedigend gelöst habe.

(Ich wünsche mir sehnlichst, daß eine Anwendung von mir nicht nur gut funktioniert, sondern zum ersten Mal in meinem lLeben auch noch gut aussieht)

Gruß
Jürgen
 

Wildcard

Top Contributor
Naja, im MouseMotionListener den Cursor ändern sobald der Zeiger über den 'Hotspots' liegt und in MouseDragged die Größe ändern.
Gehört Demo-Hilfs Dialog eigentlich zu Test-Inhalt? Wenn ja wäre vielleicht ein JInternalFrame statt eines Dialogs angebracht.
 

JSteinhilber

Bekanntes Mitglied
Die nicht modalen Hilfs-Dialoge sind später sowohl dem jeweiligen Inhalt der TitledPanels zugeordnet (z.B. Suche-Fenster), als auch völlig eigenständige kleine Eingabefenster mit deren Hilfe z.B. "on the fly" ein neuer Arzt angelegt werden soll ohne die aktuelle Aktion abbrechen zu müssen, oder gar den Inhalt der TitledPanes zu ändern.

Welche und wieviele Hilfs-Dialoge geöffnet sind beabsichtige ich in der Status-Bar mir Icons anzuzeigen.

Eine Realisierung mit JInternalFrame habe ich bereits versucht - no way - da bin ich zu blöd für.

Was meinst Du übrigens mit 'Hotspots'?
Hat ein Fenster in Java automatisch Hotspots, evtl. in den Ecken, oder kann ich die Hotspots definieren?


Grüße
Jürgen

P.s: Obwohl ich Java langsam aber sicher schätze und liebe, denke ich in schwachen Momenten an die Zeiten zurück zu denen mit GetDC(hwnd) etc. alles geritzt war. Einmal den DC in den Händen und der Context ist Dein Freund.
Bei Java fühle ich mich ständig als säße ich hinter Gittern. Zwar sehe ich all die schönen Dinge, aber ich komme nicht an sie heran.
 

Wildcard

Top Contributor
Nein, du musst die Position prüfen. Rectangle nimmt dir hier viel arbeit ab (getBounds)

JSteinhilber hat gesagt.:
P.s: Obwohl ich Java langsam aber sicher schätze und liebe, denke ich in schwachen Momenten an die Zeiten zurück zu denen mit GetDC(hwnd) etc. alles geritzt war. Einmal den DC in den Händen und der Context ist Dein Freund.
Bei Java fühle ich mich ständig als säße ich hinter Gittern. Zwar sehe ich all die schönen Dinge, aber ich komme nicht an sie heran.
Java liebst du erst dann, wenn du dich in die unzähligen zum Teil phantastischen Frameworks und Libs eingearbeitet hast.
Hinter Gittern ist man übrigens nicht, alles eine Frage von gutem Softwaredesign, das kommt mit der Erfahrung.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben