2012-02-01 14 views
6

Chciałbym wiedzieć, czy możliwe jest utworzenie okna Jframe, które nie ma domyślnych przycisków maksymalizacji/minimalizacji (-) i zamykania (x)! Dodałem niestandardowe przyciski na każdej klatce, aby użytkownik nie musiał nudzić się z domyślnymi przyciskami w prawym górnym rogu okna!Jak ukryć domyślne przyciski minimalizacji/maksymalizacji i zamykania w oknie JFrame w Javie?

+3

Oczywiście, teraz będzie musiał zadzierać z niestandardowych przycisków z subtelnych błędów użyteczności. – millimoose

Odpowiedz

4

Można użyć JWindow ponieważ jest domyślnie un_decorated, ale można setUndecorated() dla JFrame/JDialog

kolejne sposoby są

+0

Jak to zrobić z setUndecorated() dla JFrame/JDialog! Czy możesz dać przykład? – Xris

+1

'setDefaultCloseOperations()' nie ukryje przycisków, zmienia zachowanie aplikacji po zamknięciu okna. – millimoose

+1

hmmm Umieściłem link do API, wtedy nie jest wymagany żaden przykład dodawania – mKorbel

3

Użyj JFrame.setDefaultLookAndFeelDecorated. To nie może być dokładna co trzeba, ale doc mówi

Zawiera wskazówkę co do tego, czy nowo utworzone JFrames powinien mieć swoje dekoracje okienne (takie jak granice, widgety, aby zamknąć ten okna, tytuł. ..) dostarczone przez obecny wygląd i styl.

Spróbuj ten kod:

JFrame frame = new JFrame("Example"); 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
frame.setSize(100, 100); 
frame.setUndecorated(true); 
frame.getRootPane().setWindowDecorationStyle(JRootPane.NONE); 
frame.setVisible(true); 

To usunie cały pasek tytułowy. Zobacz także to thread.

W przeciwnym razie użyj JWindows.

+0

Pasek tytułu w oknie zupełnie zniknął, więc efektem ubocznym jest to, że użytkownik nie może przesunąć okna, przeciągając pasek tytułu lub zmieniając rozmiar okna. – Tony

0
JFrame.setDefaultCloseOperation(frame.DO_NOTHING_ON_CLOSE); 

Czy przycisk "X" nie działa. To działa dla mnie.

+0

Nie o to pytano. – EntangledLoops

+0

Tylko opcja działa dla mnie. Mam swój własny przycisk zamykania i menu do zamknięcia aplikacji, a tam musi zostać sprawdzona dodatkowa logika przed zamknięciem aplikacji. – Tony

0

Jeśli używasz Netbean, po prostu odznacz opcję zmiany rozmiaru we właściwościach. Wyłącza tylko przycisk Minimalizuj/Maksymalizuj.

1

frame.setUndecorated(true); frame.getRootPane().setWindowDecorationStyle(JRootPane.NONE);

+0

Trochę komentarza wokół kodu byłoby miłe, ale dobra odpowiedź na to pytanie. –

+0

Ustawienie stylu dekoracji okna wydaje się niepotrzebnie. Zobacz dokument: public void setWindowDecorationStyle (int windowDecorationStyle) Ustawia rodzaj dekoracji okien (takich jak ramki, widżety do zamykania okna, tytuł ...), które powinien dostarczyć JRootPane. Wartością domyślną jest brak dekoracji okien (BRAK). –

Powiązane problemy