Yongkang  Shuangyu  Ipar  és  Kereskedelem  Co.,  Kft

Hogyan állítsunk üveget JFrame-hoz Swingben?

Jan 15, 2026

Sziasztok, Swing-rajongók! Swing beszállítóként rengeteg kérdést kapok a Swing különböző funkcióiról. Az egyik gyakran felmerülő kérdés az, hogy hogyan állítsunk be üvegtáblát egy JFrame-hez a Swingben. Szóval úgy gondoltam, megosztok néhány meglátást ebben a témában.

Először is beszéljünk arról, hogy mi az üvegtábla. A JFrame in Swing kontextusában az üvegtábla egy átlátszó réteg, amely a keretben lévő összes többi alkatrész tetején helyezkedik el. Olyan, mint egy átlátszó lap, amellyel mindenféle klassz dolgot végezhet, például egéres eseményeket rögzíthet a teljes képkockán, vagy egyéni vizuális effektusokat adhat hozzá.

Miért használjunk üvegtáblát?

Számos oka lehet annak, hogy érdemes üvegtáblát használni. Használhatja például "elfoglalt" jelző létrehozására. Ha az alkalmazás időigényes feladatot végez, megjeleníthet egy félig átlátszó fedvényt az üvegtáblán, hogy tudatja a felhasználóval, hogy várnia kell. Egy másik felhasználási eset az egyéni felhasználói interakciók létrehozása. Rögzítheti az egéreseményeket az üvegtáblán, és olyan műveleteket hajthat végre, mint például vonalak vagy alakzatok rajzolása a meglévő összetevőkre.

Az üvegtábla beállítása

A Swing alkalmazásban lévő JFrame üvegtábla beállításához néhány egyszerű lépést kell követnie. Íme egy alapvető példa, hogyan lehet ezt megtenni.

import javax.swing.*; import java.awt.*; public class GlassPaneExample { public static void main(String[] args) { // Új JFrame létrehozása JFrame frame = new JFrame("Üvegtábla példa"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(400, 300); // Egyéni üvegtábla létrehozása JPanel glassPane = new JPanel(); glassPane.setOpaque(false); frame.setGlassPane(glassPane); glassPane.setVisible(true); // Néhány összetevő hozzáadása a fő tartalompanelhez JLabel label = new JLabel("Ez egy mintacímke"); frame.getContentPane().add(label, BorderLayout.CENTER); // A keret láthatóvá tétele frame.setVisible(true); } }

Ebben a kódban először létrehozunk egy új JFrame-et. Ezután létrehozunk egy egyéni JPanel-t, amely üvegtáblaként fog működni. Nem átlátszóra állítottuk be, hogy láthassuk az alatta lévő összetevőket. Ezt követően használjuk asetGlassPanea JFrame módszerrel, hogy hozzárendelje az egyéni üvegtáblánkat. Végül láthatóvá tesszük az üvegtáblát.

Egéresemények használata az üvegtáblán

Az egyik igazán hasznos dolog az üvegtáblával kapcsolatban, hogy rögzítheti az egér eseményeit. Tegyük fel például, hogy téglalapot szeretne rajzolni az üvegtáblára, amikor a felhasználó húzza az egeret. Így teheti meg.

16428591213_626637899

import javax.swing.*; import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.geom.Rectangle2D; public class GlassPaneMouseEventExample { private JFrame frame; privát JPanel glassPane; privát Rectangle2D rect; privát Pont kezdőpont; public GlassPaneMouseEventExample() { frame = new JFrame("Üvegtábla egéresemény példa"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(400, 300); glassPane = new JPanel() { @Override protected void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2d = (Graphics2D) g; if (rect != null) { g2d.setColor(Color.RED); g2d.draw(rect); } } }; glassPane.setOpaque(false); frame.setGlassPane(glassPane); glassPane.addMouseListener(new MouseAdapter() { @A public void mousePressed(MouseEvent e) { startPoint = e.getPoint(); } }); glassPane.addMouseMotionListener(new MouseAdapter() { @A public void mouseDragged(MouseEvent e) felülbírálása { if (startPoint != null) { int x = Math.min(startPoint.x, e.getX()); int y = Math.min,(startPoint.y(); Math.abs(startPoint.x - e.getX()); int magasság = Math.abs(startPoint.y - e.getY()) JLabel label = new JLabel("Húzza az egeret az üvegtáblára"); frame.getContentPane().add(label, BorderLayout.CENTER); frame.setVisible(true); } public static void main(String[] args) { SwingUtilities.invokeLater(GlassPaneMouseEventExample::new); } }

Ebben a kódban egyéni üvegtáblát hozunk létre, amely felülírja apaintComponentmódszer téglalap rajzolására. Egérhallgatókat is hozzáadunk az üvegtáblához, hogy rögzítsék az egérnyomást és a húzást. Amikor a felhasználó megnyomja az egeret, rögzítjük a kezdőpontot. Amikor a felhasználó húzza az egeret, a kiindulási pont és az egér aktuális pozíciója alapján kiszámítjuk a téglalapot, majd újrafestjük az üvegtáblát a téglalap megjelenítéséhez.

Swing termékajánlataink

Swing beszállítóként a Swing termékek széles választékával rendelkezünk, amelyek érdekelhetik Önt. Tekintse meg termékeinketFehér hintakészletek gyerekeknek, amelyek nem csak strapabíróak, de remekül mutatnak minden kertben. Úgy tervezték, hogy a gyerekek biztonságát és szórakozását szem előtt tartsák.

Ha valami egyedibbre vágyik, nézzen szét nálunkÉrdekes Round Swing. Másfajta hintázási élményt kínál, és biztosan sikert arat majd a gyerekek körében.

A kerttel rendelkezőknek pedig a miénkKerti hinta gyerekeknektökéletes kiegészítés. Jól illeszkedik a természeti környezetbe, és remek helyet biztosít a gyerekeknek a pihenésre és a játékra.

Beszerzésért forduljon hozzánk

Ha érdeklik Swing termékeink, vagy kérdése van a Swing fejlesztéssel kapcsolatban, ne habozzon kapcsolatba lépni. Kíváncsian várjuk, hogy megvitassuk igényeit, és meglátjuk, hogyan tudunk együtt dolgozni ötletei megvalósításán. Akár egy vállalkozás, aki termékeinket szeretné készletezni, akár egy új Swing-alkalmazáson dolgozó fejlesztő, itt vagyunk, hogy segítsünk.

Hivatkozások

  • Hall, E. (2004). "Java Swing Hacks". O'Reilly Media.
  • Yi, C. (2006). "Swing 1.6 programozás". Pearson oktatás.
goTop