Java Swing開發桌面應用-組件--複選框

1:複選框

複選框即多選框,參見的複選框如下

   

2:Swing代碼實現複選框

2.1:實現選擇後進行下一步

2.1.1:核心代碼之方法一

/**
 * 複選框
 * */
//創建複選框和Button
JCheckBox checkBox = new JCheckBox("閱讀條款並繼續操作");
JButton Button = new JButton("下一步");
		
//設置組件位置
checkBox.setBounds(125, 350, 250, 50);
checkBox.setFont(new Font("楷體", Font.CENTER_BASELINE, 15));
		
Button.setBounds(175, 400, 90, 30);
Button.setFont(new Font("楷體", Font.CENTER_BASELINE, 15));
		
//設置邏輯  未選擇的時候"下一步"爲不可點擊 複選框選中之後爲可以點擊
Button.setEnabled(false);
		
checkBox.addActionListener(new ActionListener() {
			
	@Override
	public void actionPerformed(ActionEvent e) {
		//如果checkBox是選中狀態 則設置Button爲可用
		if(checkBox.isSelected()){
					
			Button.setEnabled(true);
		}else{
					
			Button.setEnabled(false);
		}				
	}
});

2.1.2:核心代碼之方法二

/**
 * 複選框
* */
//創建複選框和Button
JCheckBox checkBox = new JCheckBox("閱讀條款並繼續操作");
JButton Button = new JButton("下一步");
		
//設置組件位置
checkBox.setBounds(125, 350, 250, 50);
checkBox.setFont(new Font("楷體", Font.CENTER_BASELINE, 15));

Button.setBounds(175, 400, 90, 30);
Button.setFont(new Font("楷體", Font.CENTER_BASELINE, 15));
		
//設置邏輯  未選擇的時候"下一步"爲不可點擊 複選框選中之後爲可以點擊
Button.setEnabled(false);
/**
 *  方法一:
 * 
checkBox.addActionListener(new ActionListener() {
			
	@Override
	public void actionPerformed(ActionEvent e) {
		//如果checkBox是選中狀態 則設置Button爲可用
		if(checkBox.isSelected()){
			
			Button.setEnabled(true);
		}else{
					
			Button.setEnabled(false);
		}				
	}
});
*/

/**
 * 實現方法二:
 * */
checkBox.addItemListener(new ItemListener() {
			
	@Override
	public void itemStateChanged(ItemEvent e) {
		boolean flag = checkBox.isSelected();//判斷checkBox是否已被選中
		Button.setEnabled(flag);
	}
});

2.1.3:完整的代碼

/**
 * 複選框的學習
 * */
package Swing;

import java.awt.Container;
import java.awt.Font;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;

public class Main6 extends JFrame {

	public static void main(String[] args) {

		Main6 main6 = new Main6();
		main6.run();
	}

	public void run() {
		
		/**
		 * 複選框
		 * */
		//創建複選框和Button
		JCheckBox checkBox = new JCheckBox("閱讀條款並繼續操作");
		JButton Button = new JButton("下一步");
		
		//設置組件位置
		checkBox.setBounds(125, 350, 250, 50);
		checkBox.setFont(new Font("楷體", Font.CENTER_BASELINE, 15));
		
		Button.setBounds(175, 400, 90, 30);
		Button.setFont(new Font("楷體", Font.CENTER_BASELINE, 15));
		
		//設置邏輯  未選擇的時候"下一步"爲不可點擊 複選框選中之後爲可以點擊
		Button.setEnabled(false);
		/**
		 *  方法一:
		 * 
		checkBox.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				//如果checkBox是選中狀態 則設置Button爲可用
				if(checkBox.isSelected()){
					
					Button.setEnabled(true);
				}else{
					
					Button.setEnabled(false);
				}				
			}
		});
		*/
		
		/**
		 * 實現方法二:
		 * */
		checkBox.addItemListener(new ItemListener() {
			
			@Override
			public void itemStateChanged(ItemEvent e) {
				boolean flag = checkBox.isSelected();//判斷checkBox是否已被選中
				Button.setEnabled(flag);
			}
		});
		Container container = this.getContentPane();
		container.add(checkBox);
		container.add(Button);
		// 設置窗體的Logo
		Image image = Toolkit.getDefaultToolkit().createImage("./img/icon.png");
		this.setIconImage(image);
		// 設置窗體的屬性
		this.setLayout(null);// 設置空佈局管理器
		this.setVisible(true);// 設置窗體可見
		this.setTitle("複選框的學習");// 設置窗體標題
		this.setSize(500, 500);// 設置窗體的高、寬
		this.setLocationRelativeTo(null);// 設置居中顯示
		// 設置Jframe窗體關閉時 程序結束
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

3:製作一個複選框

/**
 * 複選框的學習
 * */
package Swing;

import java.awt.Container;
import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class Main6 extends JFrame {

	public static void main(String[] args) {

		Main6 main6 = new Main6();
		main6.run();
	}

	public void run() {
		
		/**
		 * 複選框 實現選擇一個或者多個城市
		 * */
		//創建JCheckBox集合用來存放選擇項
		String[] str = new String[]{"北京","上海","廣州","深圳"};
		JCheckBox[] checkBox = new JCheckBox[str.length];
		
		//創建Label 進行提問
		JLabel Question = new JLabel("請選擇你所去過的城市(可多選)");
		
		//提交按鈕
		JButton SubmitBtn = new JButton("提交");
		
		//設置位置
		Question.setBounds(30, 150, 300, 45);//設置Question的位置
		SubmitBtn.setBounds(150, 210, 80, 30);//設置SubmitBtn的位置
		
		Container container = this.getContentPane();
		
		//
		for(int i = 0 ; i < str.length ; i++){
			
			checkBox[i] = new JCheckBox(str[i]);
			checkBox[i].setBounds(30+60*i, 180, 80, 25);
			container.add(checkBox[i]);
		}
		
		container.add(Question);
		container.add(SubmitBtn);
		// 設置窗體的Logo
		Image image = Toolkit.getDefaultToolkit().createImage("./img/icon.png");
		this.setIconImage(image);
		// 設置窗體的屬性
		this.setLayout(null);// 設置空佈局管理器
		this.setVisible(true);// 設置窗體可見
		this.setTitle("複選框的學習");// 設置窗體標題
		this.setSize(500, 500);// 設置窗體的高、寬
		this.setLocationRelativeTo(null);// 設置居中顯示
		// 設置Jframe窗體關閉時 程序結束
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章