Swing学習24:Java Swing JTabbedPane



Swing Learning 24 Java Swing Jtabbedpane



タブを使用して、限られたレイアウトスペースでより多くのコンテンツを表示します。 Swingは、JTabbedPaneクラスを使用してタブを実装します。

JTabbedPaneクラスによって作成されたタブは、タイトルまたはアイコンをクリックすることでタブを切り替えることができます。 JTabbedPaneクラスの一般的な構築メソッドは次のとおりです。
JTabbedPane():デフォルトのJTabbedPane.TOPレイアウトで空のTabbedPaneを作成します。
JTabbedPane(int tabPlacement):次の指定されたタブレイアウトのいずれかを使用して空のTabbedPaneを作成します:JTabbedPane.TOP、JTabbedPane.BOTTOM、JTabbedPane.LEFT、またはJTabbedPane.RIGHT。



JTabbedPaneインスタンスを作成した後、addTab()メソッドとinsertTab()メソッドを使用して、TabbedPaneオブジェクトにタブ/コンポーネントを追加できます。タブは、追加された位置に対応するインデックスで表されます。最初のタブのインデックスは0で、最後のタブのインデックスはタブの数から1を引いたものです。

TabbedPaneは、SingleSelectionModelプロパティを使用して、タブインデックスセットと現在選択されているインデックスを表します。タブの数が0より大きい場合、常に選択されたインデックスがあります。タブの数が0の場合、デフォルトで最初のタブとして初期化され、選択されたインデックスは-1です。



JTabbedPaneクラスの一般的に使用されるメソッドを表1に示します。
画像
タブパネルとカードレイアウトの違いは、タブパネルにラベルを付けることができることです。次のサンプルコードは、タブパネルを作成し、JPandパネルをタブパネルに追加します。

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

このコードスニペットの3番目のステートメントは、panel1コンポーネント(コンポーネントはJPanelオブジェクト)をtabbedPaneに追加します。メソッドの最初のパラメーターはタブラベルテキストで、2番目のパラメーターはIconオブジェクトです。これは、タブのアイコンとして機能します。 label 3番目のパラメータはタブに追加されたコンポーネントです。4番目のパラメータは、マウスポインタがタブラベルに置かれたときに表示されるプロンプトメッセージです。

例1
JTabbedPaneクラスを使用して、4つのタブを持つタブパネルを作成し、各タブのコンテンツを入力します。主な実装プロセスは次のとおりです。



(1)TabbedPaneDemoクラスを作成し、JPanel親クラスを継承します。

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)構築方法に空白のタブを作成し、新しいラベルを作成し、ラベルのテキストと画像、およびラベルに対応するコンテンツパネルとショートカットアクセス記号を指定します。これらのコードは次のとおりです。

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)makeTextPane()メソッドの実装を記述します。このメソッドは主に、コンテンツパネルを作成し、指定したテキストコンテンツをパネルに追加するために使用されます。具体的な実装コードを以下に示します。

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)構築メソッドで使用されるcreateImageIcon()メソッドは、主に画像をロードするために使用され、画像が存在しない場合はnullを返します。

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)プログラムを実行すると、結果が図1に示されます。構築方法で指定された画像があると仮定すると、図1に示す実行効果では、タブラベルをクリックするたびに独自のアイコンが表示されます。
画像

見てくれてありがとう