Stvaranje estetski ugodnog korisniฤkog interfejsa je od suลกtinskog znaฤaja za uspeลกnu softversku aplikaciju. Jedan popularan trend dizajna je koriลกtenje zaobljenih uglova za okvire prozora, dajuฤi aplikacijama moderan i gladak izgled. U ovom ฤlanku ฤemo istraลพiti kako kreirati Java JFrame sa zaobljenim uglovima, proฤi kroz kod korak po korak i proฤi u povezane biblioteke i funkcije koje ฤe nam pomoฤi da postignemo ovaj dizajn.
Reลกenje: Koriลกฤenje Java AWT i Swing
Temelj naลกeg rjeลกenja leลพi u Java Abstract Window Toolkit (AWT) i Swing biblioteke. Oni pruลพaju skup alata i komponenti za dizajniranje korisniฤkih interfejsa. Da bismo postigli zaobljene uglove na JFrameu, koristit ฤemo prilagoฤeni JFrame sa a paintComponent(Grafika g) metoda, koja ฤe nam omoguฤiti da crtamo na okvir prozora i kreiramo jedinstveni oblik za naลก JFrame.
import java.awt.Graphics; import java.awt.Shape; import java.awt.geom.RoundRectangle2D; import javax.swing.JFrame; import javax.swing.JPanel; public class RoundedCornersJFrame extends JFrame { private Shape shape; public RoundedCornersJFrame() { setUndecorated(true); JPanel panel = new JPanel() { @Override protected void paintComponent(Graphics g) { super.paintComponent(g); shape = new RoundRectangle2D.Double(0, 0, getWidth(), getHeight(), 30, 30); g.setClip(shape); } }; setContentPane(panel); setDefaultCloseOperation(EXIT_ON_CLOSE); } public static void main(String[] args) { RoundedCornersJFrame frame = new RoundedCornersJFrame(); frame.setSize(300, 300); frame.setLocationRelativeTo(null); frame.setVisible(true); } }
Objaลกnjenje korak po korak
Sada, hajde da vas vodimo kroz kod korak po korak:
1. Prvo uvozimo potrebne klase iz Java AWT (Ggraphics, Shape, i RoundRectangle2D) i Swing (JFrame i JPanel) biblioteka.
2. Zatim kreiramo novu klasu pod nazivom RoundedCornersJFrame koji proลกiruje JFrame klasa. Ovo nam omoguฤava da nadjaฤamo standardnu โโfunkcionalnost i izgled JFrame-a.
3. Definiramo privatnu varijablu oblika koja se zove Oblik koji ฤe pohraniti zaobljeni pravougaonik.
4. Kreiramo konstruktor za klasu RoundedCornersJFrame, koji ฤe izvrลกiti sljedeฤe radnje:
โ Pozovite `setUndecorated(true)` da uklonite zadane granice JFramea.
โ Kreirajte novi JPanel (panel) i nadjaฤajte metodu `paintComponent(Graphics g)`.
โ Unutar metode `paintComponent(Graphics g)`, kreirajte novu instancu RoundRectangle2D.Double sa specificiranom ลกirinom, visinom i lukom ugla.
โ Pozovite `g.setClip(shape)` da primijenite zaobljeni oblik na grafiฤki objekt panela.
5. Nakon postavljanja naลกeg prilagoฤenog panela kao panela sadrลพaja JFrame-a, postavili smo zadanu operaciju zatvaranja na `EXIT_ON_CLOSE`.
6. Konaฤno, u `main` metodi, kreiramo instancu naลกeg RoundedCornersJFrame, postavljamo njegovu veliฤinu i lokaciju i ฤinimo je vidljivom.
AWT i Swing: Biblioteke za dizajniranje korisniฤkog suฤelja
The Java Abstract Window Toolkit (AWT) biblioteka je platformski nezavisan GUI sistem za kreiranje korisniฤkih interfejsa. Obezbeฤuje komponente kao ลกto su dugmad, nalepnice i paneli, kao i menadลพere rasporeda za organizovanje komponenti unutar kontejnera. AWT takoฤer upravlja upravljanjem dogaฤajima i omoguฤava razvoj prilagoฤene grafike.
U kontrastu, zamah je biblioteka izgraฤena na vrhu AWT-a, koja nudi poboljลกani skup komponenti sa sofisticiranijim izgledom i osjeฤajem. Swing komponente su lagane, svestrane i vrlo prilagodljive, ลกto ih ฤini izborom za Java UI dizajn.
Ove biblioteke, kada se efikasno koriste, omoguฤavaju programerima da sa lakoฤom kreiraju moderna, vizuelno privlaฤna korisniฤka suฤelja. Zaobljeni uglovi na JFrames-u su samo jedan primjer kako moลพete poboljลกati korisniฤko suฤelje vaลกe aplikacije pomoฤu funkcija ovih biblioteka.