Swing learning 24: Java Swing JTabbedPane

Swing Learning 24 Java Swing Jtabbedpane



A fülekkel több tartalmat jeleníthet meg korlátozott elrendezési helyen. A Swing a JTabbedPane osztályt használja a fülek megvalósításához.

A JTabbedPane osztály által létrehozott fülek a címre vagy ikonra kattintva válthatók a fülek között. A JTabbedPane osztály általános építési módszerei a következők.
JTabbedPane (): Hozzon létre egy üres TabbedPane elemet az alapértelmezett JTabbedPane.TOP elrendezéssel.
JTabbedPane (int tabPlacement): Hozzon létre egy üres TabbedPane-t a következő megadott lapelrendezések egyikével: JTabbedPane.TOP, JTabbedPane.BOTTOM, JTabbedPane.LEFT vagy JTabbedPane.RIGHT.



A JTabbedPane példány létrehozása után az addTab () és az insertTab () metódus segítségével füleket / összetevőket adhat hozzá a TabbedPane objektumhoz. A lapot a hozzáadott pozíciónak megfelelő index képviseli, ahol az első fül indexe 0, az utolsó fül indexe pedig a mínusz 1 fül száma.



A TabbedPane a SingleSelectionModel tulajdonságot használja a tab indexkészlet és az aktuálisan kiválasztott index képviseletére. Ha a fülek száma nagyobb, mint 0, mindig lesz egy kiválasztott index, amelyet alapértelmezés szerint első fülként inicializálunk, ha a fülek száma 0, a kiválasztott index -1.



A JTabbedPane osztály általánosan alkalmazott módszereit az 1. táblázat mutatja.
kép
A fül és a kártya elrendezése közötti különbség az, hogy a fül panelen lehetnek címkék. A következő mintakód létrehoz egy tabulátorpanelt, és JPand panelt ad hozzá a lappanelhez.

JTabbedPane tabbedPane=new JTabbedPane() ImageIcon icon=new ImageIcon('temp.gif') JComponent panel1=makeTextPanel('Panel#1') //Create a jPanel container to accommodate other components tabbedPane.addTab('Tab 1',icon,panel1,'Does nothing') tabbedPane.setMnemonicAt(0,KeyEvent.VK_1) //Set shortcut keys

A kódrészlet harmadik állítása hozzáad egy panel1 komponenst (az összetevő JPanel objektum) a tabbedPane-hez, a módszer első paramétere a tab címke szövege, a második paraméter az Icon objektum, ikonként szolgál a fülön a harmadik paraméter a fülhez hozzáadott összetevő, a negyedik paraméter az azonnali üzenet, amely akkor jelenik meg, amikor az egérmutatót a fül címkéjére helyezik.

1. példa
A JTabbedPane osztály segítségével hozzon létre egy 4 lapot tartalmazó lappanelt, és töltse ki az egyes fülek tartalmát. A fő végrehajtási folyamat a következő.



(1) Hozzon létre egy TabbedPaneDemo osztályt, és örökölje a JPanel szülőosztályt.

import javax.swing.JPanel import javax.swing.* import java.awt.* import java.awt.event.KeyEvent public class TabbedPaneDemo extends JPanel { public static void main(String[] args) { JFrame frame=new JFrame('My Computer-Properties') frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) frame.add(new TabbedPaneDemo(),BorderLayout.CENTER) frame.pack() frame.setVisible(true) } }

(2) Hozzon létre egy üres lapot az építési módszerben, hozzon létre egy új címkét, adja meg a címke szövegét és képét, valamint a címkének megfelelő tartalompanelt és parancsikon hozzáférési szimbólumot. Ezek a kódok a következők:

public TabbedPaneDemo() { super(new GridLayout(1,1)) JTabbedPane tabbedPane=new JTabbedPane() ImageIcon icon=createImageIcon('tab.jp1g') JComponent panel1=makeTextPanel('Computer name') tabbedPane.addTab('Computer name',icon, panel1,'Does nothing') tabbedPane.setMnemonicAt(0,KeyEvent.VK_1) JComponent panel2=makeTextPanel('hardware') tabbedPane.addTab('hardware',icon,panel2,'Does twice as much nothing') tabbedPane.setMnemonicAt(1,KeyEvent.VK_2) JComponent panel3=makeTextPanel('advanced') tabbedPane.addTab('advanced',icon,panel3,'Still does nothing') tabbedPane.setMnemonicAt(2,KeyEvent.VK_3) JComponent panel4=makeTextPanel('System Protection') panel4.setPreferredSize(new Dimension(410,50)) tabbedPane.addTab('System Protection',icon,panel4,'Does nothing at all') tabbedPane.setMnemonicAt(3,KeyEvent.VK_4) add(tabbedPane) }

(3) Írja le a makeTextPane () metódus megvalósítását. Ezt a módszert elsősorban tartalmi panel létrehozására és meghatározott szöveges tartalom hozzáadására használják. A konkrét megvalósítási kód az alábbiakban látható.

protected JComponent makeTextPanel(String text) { JPanel panel=new JPanel(false) JLabel filler=new JLabel(text) filler.setHorizontalAlignment(JLabel.CENTER) panel.setLayout(new GridLayout(1,1)) panel.add(filler) return panel }

(4) Az építési módszerben használt createImageIcon () metódust főleg a kép betöltésére használják, és null értéket ad vissza, ha a kép nem létezik.

protected static ImageIcon createImageIcon(String path) { java.net.URL imgURL=TabbedPaneDemo.class.getResource(path) if(imgURL!=null) { return new ImageIcon(imgURL) } else { System.err.println('Couldn't find file: '+path) return null } }

(5) Futtassa a programot, és az eredményt az 1. ábra mutatja. Feltéve, hogy vannak olyan képek, amelyek az építési módszerben vannak megadva, az 1. ábrán látható futó effektusban a fül címkéjén minden egyes kattintásnak megvan a maga ikonja.
kép

Köszönöm a megtekintést