Czy istnieje odpowiednik "Group Box" W Java Swing?
Próba zbudowania aplikacji GUI w Javie / Swing. Jestem przyzwyczajony głównie do "malowania" GUI Po Stronie Windows narzędziami takimi jak VB (a dokładniej Gupta SQLWindows... ciekawe ile osób wie co to jest; -)).
Nie mogę znaleźć odpowiednika pudełka grupowego w swingu...
W polu grupowym masz kwadratowe pole (zwykle z tytułem) wokół kilku powiązanych widżetów. Jednym z przykładów jest pole grupy wokół kilku przycisków radiowych (z tytułem wyjaśniającym o czym są przyciski radiowe, np. Grupowe pole zatytułowane " Sex "z przyciskami radiowymi "Male" i "Female").
Trochę Szukałem... jedynym sposobem, który znalazłem było dodanie pod-pane, ustawić obramowanie na pod-pane, a następnie dodać wszystkie widżety w "grupa" do Pod-pane. Czy jest na to bardziej elegancki sposób?
7 answers
Utwórz JPanel i dodaj do niego swoje radiobuttony. Nie zapomnij ustawić układu Panelu JPanel na coś odpowiedniego.
Następnie wywołaj panel.setBorder(BorderFactory.createTitledBorder(name));
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-10 21:00:10
Inni już skomentowali JPanel i używają TitledBorder, to jest w porządku.
Jednak podczas grania Swing Layoutmanagerami, może być irytujące, że komponenty w różnych panelach Jpanel nie mogą być prawidłowo wyrównane (każdy panel ma swój własny LayoutManager).
Z tego powodu jest dobrą praktyką (sprawdź "JGoodies" w Internecie, aby uzyskać więcej szczegółów) w Swing GUI nie używać TitledBorders, ale raczej oddzielnych grup komponentów w Jpanelu przez JLabel, a następnie poziomy JSeparator.
Ref. "Pierwsza Pomoc dla huśtawki "
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-20 11:38:30
Pole grupy jest tylko zbiorem "logicznie zgrupowanych widżetów".
To w świecie swingu jest JPanel
.
Dodaj widżety do JPanel
.
Ustaw jego typ obramowania na 'Titled Border' i podaj tytuł, taki sam jak nazwa ramki VB6.
Voila. Masz swoją grupową skrzynkę.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-10 21:02:56
Oto cytat z jradiobutton javadocs odkąd wspomniałeś o przyciskach radiowych.
Implementacja przycisku radiowego -- elementu, który można wybrać lub odznaczyć i który wyświetla jego stan użytkownikowi. Używany z obiektem ButtonGroup do tworzenia grupy przycisków, w której można wybrać tylko jeden przycisk na raz. (Utwórz obiekt ButtonGroup i użyj jego metody add, aby włączyć obiekty JRadioButton do grupy.)
Uwaga: obiekt ButtonGroup jest logicznym grupowanie - nie fizyczne grupowanie. Aby utworzyć panel przycisków, należy nadal utworzyć JPanel lub podobny obiekt kontenera i dodać do niego obramowanie, aby oddzielić go od otaczających komponentów.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-20 09:12:55
Nie AFAIK, przynajmniej nie ze standardowymi widgetami swing.
W VB masz widżet grupy, który jest w zasadzie panelem + obramowaniem.
W Swing masz JPanel, który jest widżetem kontenera, i tworzysz i ustawiasz na nim obiekt obramowania tylko wtedy, gdy go potrzebujesz. Można argumentować, że w sposób bardziej elegancki, ponieważ nie płacisz za coś, czego nie używasz (np. border)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-10 20:22:28
Jak wspomniał David Koelle o konfigurowaniu border za pomocą kodu java, podobny wynik można również osiągnąć w trybie designer.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-01-26 09:13:55
Odpowiadam na podstawie komentarza Uri, który wyjaśnia co OP miał na myśli Group Box
:
Uri: myślę, że ma na myśli grupę kontrolną, którą widzisz w wielu oknach dialogowych, gdzie masz kwadrat wokół kilku widżetów, takich jak przyciski radiowe, na przykład.
Z tego, co wiem, Każdy JComponent
może ustawić obramowanie dla siebie, więc nie potrzebujesz drugiego panelu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-10 09:07:24