[は、Java Swing] JavaでJComboBoxの – JavaでJComboBoxの

コンテンツ
JComboBoxの作成方法
JComboBoxのためのイベントを取得します

JComboBoxのオブジェクトは、あなたがにある矢印をクリックしたときに要素を選択することができますされ、その. 例えば、我々が持っています JFrameの JComboBoxの以下のフラグから選びます:

JavaでJComboBoxの

今、私たちは、上のようなJFrameのJComboBoxのを作成することで学ぼうとしています.

JComboBoxの作成方法

JComboBoxのを作成するために、我々は次のコンストラクタを使用します:
– JComboBoxの(): 何のデータのJComboBoxを作成しません
– JComboBoxの(ComboBoxModelアモデル): 指定するJComboBoxで作成されたモデル
– JComboBoxの(と[] アイテム): 配列E中の要素とするJComboBoxを作成します。
– JComboBoxの(ベクタアイテム): ベクトルEの要素とするJComboBoxを作成します。

次のプログラムは、最初に作成JFrameのようなものです. これは、メインパネルが含まれています JPanelの. メインパネルが配置されています BorderLayoutの そして、PAGE_STARTを選択するJComboBoxに水を含んでい, JLabelの 中心部に位置する主要国の旗を表示. 使用されるコードで 2 JComboBoxのでarrCountryを表示するには国旗と国名の名前で名前を取得するarrFlag文字列配列.

package nguyenvanquan7826.JComboBox;

import java.awt.BorderLayout;

import javax.swing.ImageIcon;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

public class MyJComboBox extends JFrame {
	private JComboBox<String> cbbCountry;
	private JLabel lbShow;
	private String[] arrFlag = { "vn", "china", "us", "lao", "en" };
	private String[] arrCountry = { "Việt Nam", "Trung Quốc", "Mỹ", "Lào",
			"Anh" };

	public MyJComboBox() {
		// add main panel to JFrame
		add(createMainPanel());
		// set Display
		setTitle("JComboBox");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(300, 300);
		setLocationRelativeTo(null);
		setVisible(true);
	}

	// create main panel with BorderLayout
	private JPanel createMainPanel() {
		JPanel panel = new JPanel(new BorderLayout());
		panel.setBorder(new EmptyBorder(10, 10, 10, 10));
		// add a JComboBox to top of main panel
		panel.add(cbbCountry = createComboBox(arrCountry),
				BorderLayout.PAGE_START);
		// get flag name with country is selected in JComboBox
		String flag = arrFlag[cbbCountry.getSelectedIndex()];
		// add JLabel to show flag
		panel.add(lbShow = createLabel(flag), BorderLayout.CENTER);
		return panel;
	}

	// create a JComboBox with list item in ArrayList
	private JComboBox<String> createComboBox(String[] arrItem) {
		JComboBox<String> cbb = new JComboBox<String>(arrItem);
		return cbb;
	}

	// create JLabel to show flag with
	private JLabel createLabel(String flagName) {
		JLabel lb = new JLabel(getFlag(flagName));
		return lb;
	}

	// get flag with name is flagName
	private ImageIcon getFlag(String flagName) {
		ImageIcon flag = new ImageIcon(getClass().getResource(
				"/nguyenvanquan7826/JComboBox/" + flagName + ".png"));
		return flag;
	}

	public static void main(String[] args) {
		new MyJComboBox();
	}
}

デフォルトのJComboBoxを初期化するとき, その中の任意の要素ならば、最初の要素が選択されます. 選択した要素を決定するために、我々はこの方法を使用することができます getSelectedIndex() (要素を選択された位置を取ります) または 選出された項目を取得します() (要素を取るが選択されます) どのように、異なる目的に応じて、. 写真を撮るときには、どこにあなたの写真に合わせてパスを修正する必要性に気づきました, 彼の写真は、javaファイルと一緒にパッケージを入れました*. (ここでは写真のダウンロード)

JavaでJComboBoxの

あなたが他の国でJComboBoxの選択要素に開始コードの場合に不変のフラグを拾っていることに気づきました.

JComboBoxのためのイベントを取得します

私たちが必要とするJComboBoxの要素を選択するイベントをキャッチすることができるようにするには addActionListener JComboBoxのための. 一方、我々がしなければなりません implemetsインターフェイスのActionListener そして、上書きモード actionPerformed(ActionEvent電子). その後、我々は影響を識別し、処理するために、この方法を比較しますJComboBoxの. 私たちは、次のコードを完了しました:

package nguyenvanquan7826.JComboBox;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

public class MyJComboBox extends JFrame implements ActionListener {
	private JComboBox<String> cbbCountry;
	private JLabel lbShow;
	private String[] arrFlag = { "vn", "china", "us", "lao", "en" };
	private String[] arrCountry = { "Việt Nam", "Trung Quốc", "Mỹ", "Lào",
			"Anh" };

	public MyJComboBox() {
		// add main panel to JFrame
		add(createMainPanel());
		// set Display
		setTitle("JComboBox");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(300, 300);
		setLocationRelativeTo(null);
		setVisible(true);
	}

	// create main panel with BorderLayout
	private JPanel createMainPanel() {
		JPanel panel = new JPanel(new BorderLayout());
		panel.setBorder(new EmptyBorder(10, 10, 10, 10));
		// add a JComboBox to top of main panel
		panel.add(cbbCountry = createComboBox(arrCountry),
				BorderLayout.PAGE_START);
		// get flag name with country is selected in JComboBox
		String flag = arrFlag[cbbCountry.getSelectedIndex()];
		// add JLabel to show flag
		panel.add(lbShow = createLabel(flag), BorderLayout.CENTER);
		return panel;
	}

	// create a JComboBox with list item in ArrayList
	private JComboBox<String> createComboBox(String[] arrItem) {
		JComboBox<String> cbb = new JComboBox<String>(arrItem);
		cbb.addActionListener(this);
		return cbb;
	}

	// create JLabel to show flag with
	private JLabel createLabel(String flagName) {
		JLabel lb = new JLabel(getFlag(flagName));
		return lb;
	}

	// get flag with name is flagName
	private ImageIcon getFlag(String flagName) {
		ImageIcon flag = new ImageIcon(getClass().getResource(
				"/nguyenvanquan7826/JComboBox/" + flagName + ".png"));
		return flag;
	}

	// change flag when select items in JComboBox
	private void changeFlag() {
		lbShow.setIcon(getFlag(arrFlag[cbbCountry.getSelectedIndex()]));
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == cbbCountry) {
			changeFlag();
		}
	}

	public static void main(String[] args) {
		new MyJComboBox();
	}
}

続きを読む: クラスJComboBoxの, JComboBoxのを使用