konto usunięte

Temat: Synth Look and Feel problem z rozmiarem Buttonow

Hej,
Pisze skorke w Synthu i mam problem z rozmiarem Buttonow w programie po zaladowaniu skorki.

Tzn. niektore sa zwezaja sie (np. wezsze niz grafika lub tekst). Natomiast pozostalym nic nie brakuje.

Nie wiem, dlaczego tak sie dzieje. Jak Synth oblicza wielkosc guzika?

Oczywiscie wiem o insets, ale musialabym zmienic je dla wszystkich guzikow i wtedy niektore bylyby za duze (zmienianie stylu po nazwie lub zmiana rozmiaru guzikow na sztywno w Properties nie wchodzi w gre, poniewaz program bedzie ostro rozwijany przez rozne osoby, wiec trudno byloby nad tym zapanowac, gdyby robic to recznie).

Oto kod stylu guzikow:

<style id="button">
<!-- Shift the text one pixel when pressed -->
<property key="Button.textShiftOffset" type="integer" value="1"/>
<!-- set size of buttons -->
<insets top="15" left="20" bottom="15" right="20"/>
<font name="Dialog" size="12"/>
<state>
<imagePainter method="buttonBackground" path="images/buton.png"
sourceInsets="15 20 15 20" stretch="true" />

<color type="TEXT_FOREGROUND" value="#FFFFFF"/>
</state>

<state value="PRESSED">
<imagePainter method="buttonBackground"
path="images/buton.png"
sourceInsets="15 20 15 20" stretch="true" />
</state>

<state value="MOUSE_OVER">
<imagePainter method="buttonBackground"
path="images/buton.png"
sourceInsets="15 20 15 20" stretch="true" />
</state>
</style>
<bind style="button" type="region" key="Button"/>

Dzieki za wszystkie odpowiedzi!

konto usunięte

Temat: Synth Look and Feel problem z rozmiarem Buttonow

Agata Staniszewska:
(...)

Jesteś pewna, że to nie jest problem samego LayoutManagera? Z tego co wiem, to Synth jak i każdy inny PLAF nie mają za dużo do powiedzenie w kwestii wielkości przycisków (i innych komponentów). Mogą co najwyżej ustawić marginesy wewnętrzne (insets).
Jakbyś dodała zrzut z ekranu pokazujący źle zwymiarowane przyciski, to może byłoby nieco łatwiej namierzyć błąd.Grzegorz Hołdys edytował(a) ten post dnia 17.04.09 o godzinie 16:55

konto usunięte

Temat: Synth Look and Feel problem z rozmiarem Buttonow

Nie wiem, czy Layout Managera, bo np. w Look and Feel Metal wyglada to ok:

Obrazek


A w moim Look ad Feelu tak:

Obrazek


(chodzi o przycisk z trzema kropkami zaraz za polem "Format (typ) pliku")

Jesli to layout manager, to co mozna z tym zrobic? GUI bylo i bedzie budowane recznie w Netbeansie.Agata Staniszewska edytował(a) ten post dnia 20.04.09 o godzinie 09:03

konto usunięte

Temat: Synth Look and Feel problem z rozmiarem Buttonow

Agata Staniszewska:
(...)

Wygląda na to, że to nie jest kwestia LayoutManagera i chyba też nie samego Syntha. Przycisk o którym mowa ma bardzo małe marginesy wewnętrzne po prawej i po lewej stronie nawet pod Metalem. Może w którymś miejscu wywołujesz metodę setMargin(...) i w ten sposób nadpisujesz ustawienia wewnętrznego marginesu z Syntha?

konto usunięte

Temat: Synth Look and Feel problem z rozmiarem Buttonow

Wiesz co w sumie wyszlo na to, ze grafika guzika ma po bokach "cien", ktory jest zaliczany do szerokosci buttona - dlatego byl taki waski (no i Horizontal Size we wlasciwosciach byl ustawiony na 18...). We wlasciwosciach nie moglam zmienic, bo wtedy w metalu byl za szeroki, ale jednak dostalam zielone swiatlo, aby stworzyc osobny styl dla tego buttona i nadalam mu wieksze insets po bokach. Czyli w sumie wina grafiki oraz ustawien.

Ale wlasnie napotkalam nastepny problem - mam panel z titled border i tu zgryz jak to ustawic. Widze tylko paintera panelBorder, ale to ustawia border wszystkich paneli... oprocz tego wlasciwego. We wlasciwosciach ma on ustawiony border na TitledBorder, podczas gdy chyba aby uwzgledniany byl Synthowy border powiniem miec ustawiony SynthBorder, ale wtedy co z tytulem?

Mam nadzieje, ze nie zamotalam.
Dzieki za podpowiedzi! :)

konto usunięte

Temat: Synth Look and Feel problem z rozmiarem Buttonow

Z tego co wiem (i doświadczyłem) Synth nie wpływa na bordery. Tzn jaki sobie ustawisz border w kodzie to taki dostaniesz. SynthBorder jest klasą wewnętrzną pakietu javax.swing.plaf.synth więc nie da się stworzyć instancji tej klasy. Sam wykorzystywałem TitledBorder z Synthem i nie było problemów, aczkolwiek właściwości bordera ustawiałem w kodzie aplikacji.

konto usunięte

Temat: Synth Look and Feel problem z rozmiarem Buttonow

To dziwne w takim razie, bo pod Metalem widac border:

Obrazek


A w look and feelu Syntha nie widac:

Obrazek


(chodzi o menu sortowanie/filtrowanie)

Border jest ustawiany w kodzie (generowanym automatycznie) i wyglada to tak:

aCPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Filtrowanie"));

konto usunięte

Temat: Synth Look and Feel problem z rozmiarem Buttonow

Agata Staniszewska:
(...)

To jest klasyk Agata! TitledBorder jest borderem kompozytowym - składa się z jakiegoś innego bordera, do którego dodany zostaje tekst (tytuł). W Metalu TitledBorder jest domyślnie tworzony z LineBorder, a w Synth nie. Czyli, żeby mieć pewność, że TitledBorder będzie rysował linie, musisz go stworzyć wykorzystując metodę z klasy BorderFactory, która bierze jako argument nie tylko tekst, ale także Border.

konto usunięte

Temat: Synth Look and Feel problem z rozmiarem Buttonow

Dzieki za wyjasnienie. A skad czerpiesz takie informacje na temat Syntha? :)

konto usunięte

Temat: Synth Look and Feel problem z rozmiarem Buttonow

Agata Staniszewska:
Dzieki za wyjasnienie. A skad czerpiesz takie informacje na temat Syntha? :)

Wkurzysz się jak Ci napiszę, że z Googli? ;-P

Następna dyskusja:

Panel, ktory moze miec stan...




Wyślij zaproszenie do