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);
}
}