package elte.java2_utikalauz5.gui; /** Példaprogram a {@code GridBagLayout} elrendezési stratégia szemléltetésére.
Minden gomb elrendezési jellemzőit véletlenszerűen állítja be, felhasználva a gombokra jellemző arányszámot. @link.forrásfájl {@docRoot}/../data/gui/src GridBagLayoutTeszt.java @link.letöltés {@docRoot}/../data/gui GridBagLayoutTeszt.jar @see java.awt.GridBagLayout @since Java 2 Útikalauz programozóknak 5.0 */ class GridBagLayoutTeszt extends LayoutTeszt { /** Újonnan felkerülő nyomógombhoz tartozó elrendezési jellemző lekérdezése. @param gomb az új nyomógomb @param felület cél konténer @return a nyomógombhoz tartozó elrendezési jellemző, vagy {@code null} */ @Override Object újgomb( java.awt.Container felület, Gomb gomb ) { gomb.setVonalaz(false); //nincs igazítás java.awt.GridBagConstraints gbc = new java.awt.GridBagConstraints(); beállít( felület, gomb, gbc ); return gbc; } /** Nyomógomb elrendezési jellemzőinek megváltoztatása. Meghívása előtt a paraméterként kapott gombon már beállításra került egy új arányszám. @param gomb a megváltoztatott nyomógomb */ @Override void változógomb( Gomb gomb ) { java.awt.GridBagLayout gbl = (java.awt.GridBagLayout)elrendezés; java.awt.GridBagConstraints gbc = gbl.getConstraints(gomb); beállít(gomb.getParent(), gomb, gbc); //elrendezési jellemző módosítása gbl.setConstraints( gomb, gbc ); //és újra alkalmazása } /** Nyomógomb elrendezési jellemzőinek véletlenszerű beállítása. @param felület cél konténer @param gomb a beállítandó nyomógomb @param gbc a beállítandó elrendezési jellemző */ private void beállít( java.awt.Container felület, Gomb gomb, java.awt.GridBagConstraints gbc ) { //rácskoordináták gbc.gridx = véletlen.nextInt(felület.getComponentCount()+1); gbc.gridy = véletlen.nextInt(felület.getComponentCount()+1); if (véletlen.nextBoolean()) { //egy sorba gbc.gridwidth = véletlen.nextInt(felület.getComponentCount()+1); gbc.gridheight = 1; } else { //egy oszlopba gbc.gridwidth = 1; gbc.gridheight = véletlen.nextInt(felület.getComponentCount()+1); } gbc.weightx = gomb.getAlignmentX(); //igazítási súlyok gbc.weighty = gomb.getAlignmentY(); gbc.fill = java.awt.GridBagConstraints.BOTH; //igazítás minden irányba } /** Konstruktor az elrendezési stratégia beállításával. */ GridBagLayoutTeszt() { super( new java.awt.GridBagLayout() ); } /** A grafikus felhasználói felület felépítése {@code GridLayout}-ot használva. @param felület A felhasználói felületet tartalmazó konténer. @param argumentumok Az indításkor megadott paraméterek. */ public static void felépít(java.awt.Container felület, String argumentumok[]) { felépít( new GridBagLayoutTeszt(), felület, argumentumok ); } /** A tesztprogram indítása külön ablakban. @param argumentumok Az indításkor megadott paraméterek. */ public static void main( String[] argumentumok ) { felépít( null, argumentumok ); } }