Portal > Foren > Java > Desktop-Applikationen und Grafik > Einige Formatierungsprobleme von Swing-Componenten
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 28.03.2006, 12:40 Nach oben    #1
Benutzer
 
Registriert seit: 05.12.2005
Beiträge: 62
Standard Einige Formatierungsprobleme von Swing-Componenten

Schönen guten Tag allerseits...

da bin ich mal wieder Ich habe ein paar Fragen bzgl. der Formatierung von Swing Componenten und hoffe bzw. bin mir sicher, dass ihr mir dabei weiterhelfen könnt.

1. Ausrichtung der Komponenten innerhalb eines JPanels mit BorderLayout: offenbar ist die horizontale Ausrichtung beim BorderLayout so wie ich mir das wünsche -> BorderLayout.EAST = linksbündig, BorderLayout.CENTER = zentriert, BorderLayout.WEST = rechtsbündig (mehr brauche ich derzeit nicht). Aber die vertikale Ausrichtung ist immer "top". Das sieht dann aber nicht besonders schön aus, wenn die Komponenten in diesem Panel unterschiedliche Höhen haben.
Wie kann ich das nun ändern? Mit JPanel#setAlignmentX(float) und setAlignmentY(float) komm ich irgendwie nicht klar, da ich durch den float-Parameter, den diese Methoden erwarten total verwirrt bin. Ich würde da eher ein int im Sinne eines Fields erwarten. setHorizontalAlignment(int), wie ich es z. B. vom Button kenne, um den Text auszurichten, gibt es für JPanel nicht. Also was tun? Wie bekomme ich die Komponenten denn nun anders ausgerichtet als default?

2. Ich habe einen JSpinner mit einem TitledEtchedBorder (also BorderFactory.createTitledBorder(BorderFactory.cre ateEtchedBorder(EtchedBorder.LOWERED), ...) gebaut. Sieht aber kagge aus, wenn die Buttons da so komisch rausfallen (siehe Grafik1). Gibt es eine Möglichkeit, wie ich die Buttons noch in den Rahmenbereich reinbekomme? Sun schafft es in seinem Tutorial doch auch (Grafik2), zwar nicht mit sonem Border wie ich ihn haben will, aber immerhin... *ratlossei*

Grafik1


Grafik2


Thx in advance
sayang
Sayang ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 28.03.2006, 12:50 Nach oben    #2
Benutzer
 
Registriert seit: 05.12.2005
Beiträge: 62
Standard

So. nun hatte ich gleich nach Absenden des ersten Beitrags die Idee, den Spinner vorher noch in ein Panel zu packen und diesem den Border zu verpassen. Sieht auch viel besser aus:



Was mir jetzt schleierhaft ist: warum hat das Panel jetzt einen so dicken inneren Rahmen (der platz zw. dem Spinner und dem Rand des Borders)?

Hach, Swing ist doch eine wahre Freude

Lg
sayang
Sayang ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 28.03.2006, 17:38 Nach oben    #3
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.110
Standard

Zu 1) Was willst du den im Endeffekt erreichen? Ich bezweifle, dass das BorderLayout das ist, was du benutzen solltest.

Zu 2b) Weil das vom LookAndFeel so vorgeschrieben wird. Die Einstellung solltest du auch nicht ändern, sonst sieht es furchtbar aus. In deinem Fall wäre es aber allgemein viel sinnvoller, ein Label vor den Spinner zu setzen. Ist benutzerfreundlicher.
pago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 28.03.2006, 18:35 Nach oben    #4
Benutzer
 
Registriert seit: 05.12.2005
Beiträge: 62
Standard

Also,

Das Panel um das es sich im 1. Problem handelt sieht derzeit folgendermaßen aus:


Warum ich BorderLayout genommen hab? Hmm, weil es mir die Komponenten nicht - wie bei GridLayout - auf die Zellengröße anpasst und weil ich für eine "Zeile" von Komponenten keinen Sinn gesehen habe, ein GridBagLayout zu verwenden. Das einzige was nun noch passieren soll ist, dass die 4 Buttons vertikal am unteren Rand des Panels ausgerichtet werden. Welches Layout könntest/würdest du dafür empfehlen?

Zu 2. Ich habe andere Komponenten auch mit einem solchen Rahmen eingerahmt und da ist dieser Rand nicht so dicke... wundert mich nur. Oder liegt es am Spinner? Und wenn es am Spinner liegt, warum könnte ich dem Spinner nicht sagen, dass er nicht sonen fetten Rand fabrizieren soll? Ist irgendwie alles verwirrend

Lg
sayang
Sayang ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 28.03.2006, 21:05 Nach oben    #5
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.110
Standard

Wegen des Randes: Dann hast du's falsch benutzt. Diesen Border setzt man _niemals_ bei irgendwas anderem als nem JPanel ein.

Und bei dem Layout würde ich mir überlegen, ob ich es wirklich so haben will. Das ist nämlich ziemlich verwirrend.

Wenn's aber unbedingt so sein muss: Nimm GridBagLayout oder versuch's mit ner Box, bzw. BoxLayout.
pago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 28.03.2006, 22:35 Nach oben    #6
Benutzer
 
Registriert seit: 05.12.2005
Beiträge: 62
Standard

Hi pago,

erstmal vielen Dank für deine tatkräftige Unterstützung Hier mal ein Code excerpt
Code:
SpinnerModel model = new SpinnerNumberModel(...);
JSpinner spinner = new JSpinner(model);
spinner.setPreferredSize(new Dimension(120,24));
JPanel spinnerPanel = new JPanel();
spinnerPanel.setBorder(
  BorderFactory.createTitledBorder(
    BorderFactory.createEtchedBorder(EtchedBorder.LOWERED), 
    "# of genes for output", 
    TitledBorder.DEFAULT_JUSTIFICATION, 
    TitledBorder.DEFAULT_POSITION, 
    new Font("SansSerif", Font.PLAIN, 12)));
spinnerPanel.add(spinner);
actionPanel.add(spinnerPanel, BorderLayout.WEST); //Der im obigen Beitrag dargestellte Panel mit dem derzeitigen BorderLayout
Wie du siehst habe ich dem spinnerPanel diesen Border verpasst. Vielleicht liegts ja auch am setPreferredSize des Spinners!? Generell ist das aber ein "hinnehmbares Manko". Das vertikale Bottom-Alignment der 4 Buttons stört mich da schon eher... Mit BoxLayout werd ich mich morgen mal befassen.
Melde mich dann wieder.

Lg und gute Nacht
sayang
Sayang ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Swing Layouts erklären ex³ Desktop-Applikationen und Grafik 11 03.08.2006 14:30
Warning: not compatibele with future Swing releases Ben Allgemeine Java-Programmierung 4 10.03.2006 11:08
Java SWING Basti77 Literatur 6 12.08.2005 11:19
Spielfeld programmierung mit Swing (jComponent) Maximum Desktop-Applikationen und Grafik 11 18.02.2005 23:55
Grundlegende Frage zu Tabellen mit Swing Herr Bö Allgemeine Java-Programmierung 1 02.08.2004 19:52


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:21 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44