JPopupMenu
A JPopupMenu egy Swing összetevő, amely felbukkanó menü megjelenítésére szolgál az alkalmazásban. A felbukkanó menü nem más, mint egy kis ablak, amely felbukkan, és számos eseményt megmutat, például gomb kattintással.
Példa
- A Szerkesztés menü olyan opciókat tartalmazhat, mint a kivágás, másolás és beillesztés.
- Egy szervezet menüje olyan lehetőségeket tartalmazhat, mint a Kezdőlap, vegye fel velünk a kapcsolatot, rólunk, érdeklődjön stb.
A JPopupMenu egy osztály, amelyet egy Swing alkalmazásban használnak. Itt van a nyilatkozat:
A nyilvános osztályú JPopupMenu kiterjeszti a JComponent eszközöket, amelyek hozzáférhetőek, a MenuElement
A JComponent alaposztálya az összes Swing alkatrészhez, kivéve a felső szintű tartályokat.
Constructors
JPopupMenu ()
Ez a kivitelező JPopupMenu-t készít hívó nélkül.
JPopupMenu (karakterlánc címke)
Ez a kivitelező JPopupMenu-t állít fel egy címmel.
Megértjük a JPopupMenu példáját:
Program
package application;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.SwingConstants;
import javax.swing.event.PopupMenuEvent;
import javax.swing.event.PopupMenuListener;
public class JPopupMenuDemo (
public static void main(String() args) (
JFrame app = new JFrame();
JButton organization = new JButton("Organization");
app.add(organization);
app.setSize(400, 400);
app.setLayout(new GridLayout(2, 1));
app.setVisible(true);
organization.setVisible(true);
JPopupMenu menu = new JPopupMenu("Menu");
JLabel status = new JLabel();
status.setHorizontalTextPosition(SwingConstants.CENTER);
status.setVerticalTextPosition(SwingConstants.CENTER);
app.add(status);
ActionListener listener = new ActionListener() (
@Override
public void actionPerformed(ActionEvent e) (
status.setText(e.getActionCommand());
status.setVisible(true);
)
);
JMenuItem enquire = new JMenuItem("Enquire");
enquire.addActionListener(listener);
JMenuItem aboutUs = new JMenuItem("About Us");
aboutUs.addActionListener(listener);
JMenuItem home = menu.add("Home");
home.addActionListener(listener);
JMenuItem contactUs = menu.add(new AbstractAction() (
private static final long serialVersionUID = 1L;
@Override
public void actionPerformed(ActionEvent e) (
status.setText(e.getActionCommand());
status.setVisible(true);
)
));
menu.add(enquire);
menu.add(aboutUs);
menu.add(contactUs);
home.setText("Home. Index - " + menu.getComponentIndex(home));
enquire.setText("Enquire. Index - " + menu.getComponentIndex(enquire));
aboutUs.setText("About Us. Index - " + menu.getComponentIndex(aboutUs));
contactUs.setText("Contact Us. Index - " + menu.getComponentIndex(contactUs));
menu.addPopupMenuListener(new PopupMenuListener() (
@Override
public void popupMenuWillBecomeVisible(PopupMenuEvent e) (
status.setText("Popup menu is visible now.");
status.setVisible(true);
)
@Override
public void popupMenuWillBecomeInvisible(PopupMenuEvent e) (
status.setText("Popup menu is invisible now.");
)
@Override
public void popupMenuCanceled(PopupMenuEvent e) (
status.setText("Popup menu is cancelled now.");
)
));
organization.addMouseListener(new MouseAdapter() (
public void mouseClicked(MouseEvent e) (
menu.show(app, e.getX(), e.getY());
)
));
)
)
Magyarázat
Ez egy olyan alkalmazás bármely szervezet számára, amelynek alapvető oldala van, mint például otthon, érdeklődjön rólunk, és lépjen kapcsolatba velünk.
- Először létrehoztuk a JFrame méretét 400x400 pixel méretben. A JFrame egy felső szintű ablak címmel és szegéllyel.
- Ezután hozzáadott egy „Szervezet” gombot az alkalmazás főmenüjének megjelenítéséhez.
- Létrejön egy címke, amely megmutatja az alkalmazás állapotát (Melyik menüpontra kattintanak)
- Felugró menü jön létre a JPopupMenu osztály használatával, és négy menüpontot ad hozzá - Főoldal, érdeklődjön, rólunk és lépjen kapcsolatba velünk.
- A menüpont indexét a „getComponentIndex” funkció használatával kell kitalálni és megjeleníteni.
- Hozzáadott egy elválasztót a menü végéhez az “addSeparator” funkció használatával.
- A hallgató hozzáadódik ahhoz, hogy a menüablakot a gomb kattintással megjelenítse.
- Még egy hallgató hozzáadódik az állapot megváltoztatásához, amikor egy menü felbukkan, és amikor a menüpontokra kattintanak.
- Amikor a felhasználó rákattint a „Szervezet” gombra, egy felbukkanó ablak nyílik meg a menüelemekkel.
- Ha egy menüelemre kattintanak, az “állapot” megváltozik.
Kimenet
- Ez az alkalmazás:
- Amikor a felhasználó a „Szervezet” elemre kattintott, megjelenik egy felbukkanó menü:
- Amikor a felhasználó rákattintott a „Kezdőlapra”:
- Amikor a felhasználó az „Érdeklődés” gombra kattintott:
- Amikor a felhasználó rákattintott a "Rólunk":
- Amikor a felhasználó rákattintott a „Kapcsolatfelvétel” elemre:
A JPopupMenu módszerei
Néhány hasznos JPopupMenu módszer:
- JMenuItem add (a) művelet
Ez a módszer hozzáad egy menüpontot a menü végéhez, és megadja a menüpont műveletét.
- JMenuItem add (JMenuItem menuItem)
Ez a módszer a menü végén is hozzáad egy menüpontot, azzal a különbséggel, hogy ennek a menüpontnak a mûveletét a JMenuItem-ben kell megadni.
- JMenuItemadd (karakterláncok)
Ez a módszer létrehoz egy JMenuItem-et, hozzáadja a menühez, és visszatér a JMenuItem-et további konfigurálhatóság céljából.
- void addSeparator ()
Ez a módszer elválasztó helyet ad a menü végéhez.
- int getComponentIndex (c komponens)
Ez a módszer a megadott összetevő indexét adja vissza ezen a JPopupMenu-en belül.
- statikus logikai getDefaultLightWeightPopupEnabled ()
Ez a módszer visszaadja az defaultLightWeightPopupEnabled tulajdonság értékét, amely alapértelmezés szerint igaz.
- statikus void setDefaultLightWeightPopupEnabled (logikai aFlag)
Ez a módszer beállítja az defaultLightWeightPopupEnabled tulajdonság értékét.
- Karakterlánc getLabel ()
Ez a módszer visszatér a menü címkéjéhez.
- void setLabel (karakterlánc címke)
Ez a módszer beállítja ennek a menünek a címkét.
- Beilleszti a getMargin ()
Ez a módszer pixelekben adja meg a margót a menü szélének és a tárolóinak között.
- logikai isLightWeightPopupEnabled ()
Ez a módszer a „lightWeightPopupEnabled” tulajdonságot adja vissza.
- void setLightWeightPopupEnabled (logikai aFlag)
Ez a módszer beállítja a „lightWeightPopupEnabled” tulajdonságot, amely alapértelmezés szerint igaz.
- boolean isVisible ()
Ez a módszer visszaadja a menü jelenlegi láthatóságát.
- void setVisible (logikai b)
Ez a módszer beállítja a menü láthatóságát.
- védett karakterlánc paramString ()
Ez a módszer visszaadja a menü string-ábrázolását.
- érvénytelen eltávolítás (int pos)
Ez a módszer eltávolítja a megadott indexű összetevőt ebből a menüből.
- void setLocation (int x, int y)
Ez a módszer az x és y koordinátákkal beállítja a menü bal felső sarkának helyét.
- void setPopupSize (int szélesség, int magasság)
Ez a módszer beállítja a menüablak méretét a megadott magasságra és szélességre.
- void setPopupSize (d dimenzió)
Ez a módszer beállítja a menüablak méretét a megadott méretre.
- PopupMenuUI getUI ()
Ez a módszer visszatér e menü megjelenéséhez és megjelenéséhez.
- void setUI (PopupMenuUI ui)
Ez a módszer beállítja a menü megjelenését és megjelenését.
- érvénytelen frissítésUI ()
Ez a módszer visszaállítja a menü megjelenését és érzetét.
- érvénytelen beszúrás (a művelet, int index)
Ez a módszer a menüpontot beszúrja a menübe egy meghatározott művelettel, a megadott indexnél.
- void insert (Komponens összetevő, int index)
Ez a módszer a menüpontot beszúrja a menübe a megadott indexnél.
- void show (komponens meghívó, int x, int y)
Ez a módszer a komponenshívó menüjét mutatja a koordinátatérben x, y pozícióban.
- void addPopupMenuListener (PopupMenuListener l)
Ez a módszer hozzáad egy hallgatót ehhez a felugró menühez, amelynek segítségével ellenőrizhetjük, hogy a felbukkanó menü látható, láthatatlan és törlődik-e.
Ajánlott cikkek
Ez egy útmutató a JPopupMenu-hoz. Itt a Példát és a Konstruktort tárgyaljuk a JPopupMenu programjával és magyarázatával. Lehet, hogy megnézi a következő cikkeket is, ha többet szeretne megtudni -
- Java kommentárok
- Négyzetgyökér Java-ban
- CardLayout Java-ban
- Nyomtatási tömb Java-ban
- JLabel Java
- Négyzetgyökér a PHP-ben