Riješeno: zaobljeni uglovi jframe-a u Javi

Posljednje ažuriranje: 06/19/2023

zaobljeni uglovi jframea Zaobljeni uglovi JFramea: Poboljšanje korisničkog interfejsa vaše aplikacije

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.

Slični postovi: